ActiveRecord::RecordNotUnique on idx_tag_users_ix1: How to fix?에서 이어진 토론입니다:
오류가 재현되었습니다. 이 버그를 파악할 수 있는 단서를 찾은 것 같습니다.
재현 방법
-
태그 #foo 생성
-
태그 #foo 사용 권한을 Staff로 제한
-
그룹 Bar 생성
-
그룹 Bar에 태그 #foo의 Watching 알림을 할당
-
권한이 없는 사용자가 그룹 Bar에 가입
-
해당 사용자의 #foo 개인 알림을 Normal로 변경
-
권한이 없는 사용자는 더 이상 페이지를 읽을 수 없어야 함
서로 다른 두 명에게 두 번 발생했기 때문에, 제가 추측하는 시나리오가 실제로 일어난 일일 가능성이 높습니다. 오류 내용은 다음과 같습니다: https://oxygen.offdem.net/logs/show/f70207d3affa8967932b9122d2be212b
제목이 다소 제한적으로 느껴질 수 있습니다. 태그의 그룹 제한과 개인 알림 설정과 더 관련이 있다고 생각합니다.
모든 신규 사용자에게 콘솔에서 제거해야 하는 중복 항목이 생성되었습니다:
r = TagUser.connection.execute("SELECT user_id, tag_id, count(*) FROM tag_users GROUP BY tag_id, user_id HAVING count(*) > 1")
r.values.each { |uid,tag,_| TagUser.where(user_id: uid, tag_id: tag).last.destroy }
재현 단계를 제대로 수행하고 있는지 확실하지 않습니다…
- 태그 그룹 생성
- 태그 그룹에
#staff-tag 태그 생성
- '모두에게 태그가 표시되지만, 다음 그룹만 사용할 수 있음’을
staff로 설정
- 그룹 생성
/manage/tags에서 #staff-tag를 Watching(관심)에 추가
- 테스트 사용자(TL2)를 해당 그룹에 추가
- 설정/추적(Preferences/Tracking)에서 테스트 사용자의
#staff-tag가 Watching 상태인지 확인
/tags/staff-tag로 이동하여 벨 아이콘을 ‘Normal’(보통)로 변경
모든 것이 정상적으로 작동하는 것 같습니다?
이 단계에 대해 확신이 서지 않습니다. 그룹 알림을 사용하여 해당 그룹의 감시 알림에 태그를 추가했습니다
이 페이지를 말씀드린 거예요:
링크를 너무 많이 줄인 것 같네요 - /g/GROUPNAME/manage/tags
아니면 다른 곳에서 시도해 봐야 하나요?
정말 잘 모르겠어요. OFFDEM 전에 이 일에 많은 시간을 쓸 수는 없어요. 지금은 새 사용자가 생길 때마다 SQL 요청을 실행해서 문제를 임시로 해결하고 있어요. 혹시 놓친 부분이 있을지도 몰라요. 예를 들어… 모든 카테고리가 기본적으로 음소거되어 있어서 알림에 영향을 미칠 수도 있겠네요.
그것이 관련이 있을 수 있습니다. 해당 설정에 기본적으로 모든 카테고리 음소거를 사용하고 계신가요?
1개의 좋아요