스태프 태그가 중복된 태그 인덱스를 유발합니다

ActiveRecord::RecordNotUnique on idx_tag_users_ix1: How to fix?에서 이어진 토론입니다:

오류가 재현되었습니다. 이 버그를 파악할 수 있는 단서를 찾은 것 같습니다.

재현 방법

  1. 태그 #foo 생성

  2. 태그 #foo 사용 권한을 Staff로 제한

  3. 그룹 Bar 생성

  4. 그룹 Bar에 태그 #foo의 Watching 알림을 할당

  5. 권한이 없는 사용자가 그룹 Bar에 가입

  6. 해당 사용자의 #foo 개인 알림을 Normal로 변경

  7. 권한이 없는 사용자는 더 이상 페이지를 읽을 수 없어야 함

서로 다른 두 명에게 두 번 발생했기 때문에, 제가 추측하는 시나리오가 실제로 일어난 일일 가능성이 높습니다. 오류 내용은 다음과 같습니다: 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개의 좋아요

네, 저는 이 설정을 사용합니다.