그룹 개요에 사용자 수가 잘못 표시됨

어떤 이유로든 신뢰 수준 0~4의 그룹 개요에 표시된 숫자가 잘못되었습니다(너무 높음).
현재 우리는 사용자 439명(시스템 및 discobot 포함)만 보유하고 있습니다. (과거에는 사용자가 더 많았음)
하지만 그룹 개요에는 다음과 같이 표시됩니다:

그룹 개요에서 신뢰 수준 0을 클릭하면 올바른 숫자가 표시됩니다:

신뢰 수준 0: 557이지만 내부에서는 439
신뢰 수준 1: 480이지만 내부에서는 412
신뢰 수준 2: 300이지만 내부에서는 298
신뢰 수준 3: 37이지만 내부에서는 35
신뢰 수준 4: 4이지만 내부에서는 2

“select count(*) from users” 쿼리도 441을 표시하며, 이는 439 + 시스템 + discobot과 일치합니다.

그룹 개요에 표시된 다른 모든 그룹의 숫자는 올바르게 보입니다.

요약의 숫자를 어떻게 수정할 수 있을까요?

현재 버전 2.6.0.beta5 ( 698b7ace10 )를 사용 중이지만, 이 문제는 이전 버전에서도 이미 존재했을 가능성이 큽니다.

숫자는 정기적으로 수정되며, 동기화가 깨지는 드문 경우가 있습니다.

최대 12시간 정도 기다리면 자동으로 해결됩니다.

설치 환경에서 Sidekiq가 정상적으로 작동하고 있나요? 최근 대규모로 사용자를 삭제한 적이 있나요?

12시간이 지났는데도 여전히 값이 잘못되었습니다. 신뢰도 수준 0부터 4까지의 모든 값이 (어떤 이유에서인지) 2만큼만 감소했습니다. 다른 그룹 카운터는 모두 정확해 보입니다.

아니요, 마지막 사용자 삭제는 이미 2일 전에 수행되었습니다.
최근 14일 동안 저는 사용자 7명만 삭제했습니다.
최근 1년 반 동안에는 2,000명 이상의 사용자를 삭제했습니다. 저희는 autosupend 플러그인을 사용하고 있으며, 365일 이상 활동이 없는 사용자는 자동으로 정지 처리합니다. 이렇게 자동 정지된 사용자들과 그들의 모든 데이터는 EU-GDPR 준수를 위해 최소 주 1회 삭제합니다.

Sidekick은 정상적으로 작동 중이며 죽은 작업(dead jobs)도 없습니다.
기억하기로는 최근 며칠 동안 에러가 난 작업의 수도 변하지 않았습니다.
큐 0f13eb003564dea87a7cc8f25560ba0e는 무엇인가요?
해당 큐가 필요한 건가요, 아니면 삭제해야 하나요?

문제를 찾은 것 같습니다. group_users 테이블에는 더 이상 존재하지 않는 user_id에 대한 항목이 여전히 남아 있고, users 테이블에도 해당 항목이 없습니다. (총 117개의 user_id에 대해 182개의 항목이 users 테이블에 대응하는 항목 없이 존재합니다)
즉, 어딘가에서 데이터베이스에 불일치가 발생했습니다. 어떻게 이런 일이 발생했는지 모르겠습니다.
그리고 이제 질문은, 이를 어떻게 해결할 수 있는가입니다.
users 테이블에 항목이 존재하지 않는 group_users 테이블의 항목들을 SQL 문으로 수동으로 삭제하면 될까요?

네, 어떻게 그런 상태가 되었는지 모르겠지만, 어떤 마이그레이션의 결과이거나 그런 종류의 문제일 수도 있겠네요.

삭제는 완전히 안전합니다(다만 이런 경우처럼, 삭제 전에 DB를 백업해 두세요).

./launcher enter app
rails c
DB.exec("delete from group_users where user_id not in (select id from users)")

여기서 일관된 재현 단계를 찾을 수 있다면, 기꺼이 수정하겠습니다.

답변 주셔서 감사합니다. 삭제 작업을 완료했고, 개요의 다음 업데이트가 완료되면 다시 확인하겠습니다.

지금은 괜찮아 보이네, 사건 종결.