누군가가 당신을 인용하며 답글을 남기면, 답글 알림과 인용 알림 두 가지가 모두 도착합니다. 이것이 의도된 동작인가요? 제 생각에는 약간 중복되는 것 같습니다.
네, 이건 의도된 게 아니고 버그라고 볼 수도 있겠네요…
여기서 알림이 2개 떴는지 확인해 주실 수 있나요?
저는 여기서는 받지 못했지만, 아마도 다른 게시물이 아니라 주제(topic)에 답글을 남겼기 때문일 수도 있습니다. 5일 전 다른 답글에서도 같은 문제가 있었습니다:
오늘早些 다른 사용자로부터도 비슷한 알림이 왔습니다:
이 답글에 대해 알림 2건을 받으셨나요? (주제에 대한 답글인 경우를 제외하고) 매번 이런 일이 발생하는 것 같습니다.
이것은 주제에 대한 직접적인 답글입니다.
그 일이 실제로 일어나고 있다고 완전히 믿습니다. 다만 정확한 재현 방법을 원할 뿐입니다.
답변 알림만 받았어요… 이상하네요. 매번 그런 건 아닌 것 같지만, 꽤 자주 일어나는 것 같습니다.
여기서 작성한 답변과 이전에 문제를 일으킨 답변들 사이에 차이를 찾을 수 없습니다. 두 경우 모두 이전 게시물(토픽이 아닌)에 대한 답변이며, 동일한 게시물에서 인용한 것입니다. 위에서 언급한 두 게시물의 링크를 첨부하니, 차이를 발견할 수 있는지 확인해 주세요.
Install Discourse on Windows for development - #49
`min ratio to crop` site setting should respect w/h ratio as defined in markdown - #8 by md-misko
생각할 수 있는 다른 이유는 인용 알림이 때때로 지연된다는 점입니다. 일반적으로 인용 알림은 답변 알림보다 늦게 도착합니다. 만약 이러한 알림이 백그라운드 태스크에서 생성된다면, 아마도某种의 레이스 컨디션(race condition)이 있을 수 있습니다.
나도 이건 확실히 레이스 컨디션인 것 같다.
처음에는 그냥 답글을 달고, 나중에 인용으로 수정하면 그렇게 되는 거 아닌가요?
그런 경우에는 실제로 그렇게 되지만, 그런 경우에만 그런 일은 아니라고 봅니다. 그렇게 많은 사람들이 수정 시 인용을 추가하고 있을 만큼 빈번하게 발생하기 때문에, 그럴 가능성은 낮아 보입니다. 혹시 @sam 님이 제가 언급한 게시글을 한 번에 작성한 건지, 아니면 나중에 인용을 추가해 수정한 건지 기억이 나시면 확인해 주실 수 있을까요? 해당 게시글이 6일 전 것이므로.
저도 이 답글/인용에 대해 동일한 문제를 겪었습니다. 스크린샷:
그렇다면 저는 먼저 답글을 남기고, 저장한 뒤 바로 인용문을 추가해 더 나은 맥락을 제공하기 위해 수정했습니다. 따라서 두 번의 알림이 발생한 이유를 설명할 수 있습니다. 하나는 답글 작성 시, 다른 하나는 수정 시 인용문을 추가한 경우입니다.
아, 고마워. 그러면 그게 이유겠네.
원래 답변에서(수정이 아닌) 작성된 인용이 수정 시 추가된 인용처럼 처리되는 일종의 경합 상태(race condition)가 있는지 여전히 궁금합니다. 시점만 놓고 보면 그렇습니다.
이 인용/답변에 대해 알림을 하나만 받았습니다. 이로써 레이스 컨디션이 완전히 배제되는 것은 아니지만, 더 가능성 높은 시나리오는 Falco가 언급한 것처럼 먼저 답변을 작성한 뒤 빠르게 수정하여 인용을 추가한 경우입니다.
그러므로 사용자들이 이렇게 하지 않도록 요청해야 합니다 ![]()
사후적으로 처리되는 것처럼 보입니다. 게시글을 빠르게 작성해 제출한 뒤, 맥락이 완전히 명확하지 않을 수 있다는 것을 깨닫고 다시 돌아가 인용구를 추가하는 경우가 있거든요.
이제 ‘수정 시 인용’이라는 측면이 언급된 후로 더 주의를 기울이고 있는데, 인용 알림을 받지 못한 채 여러 번 인용된 적이 있습니다. 따라서 실제로는 그와 관련이 있을 가능성이 높아 보입니다. 불행히도, 인용 알림을 받을 때마다 상대방에게 수정 시 인용을 추가했는지 물어볼 수는 없으므로, 제 혼자서는 아무것도 확인할 수 없습니다.
만약 정말로 수정 시에만 발생하고(레이스 컨디션에서는 절대 발생하지 않는다면), 이는 사실 꽤 좋은 ‘기능’이라고 할 수 있습니다. 이미 읽은 게시글에도 더 내용이 추가되었음을 알려주기 때문이죠.
요즘 이런 일이 너무 자주 발생하고 있습니다 … 방금 @downey로부터 트리플(3연속)을 받았습니다.
@kris.kotlarek 이 문제를 조사해 주시겠어요? 최소한 레이스 컨디션(race condition)이 아닌 상황에서 이런 일이 불가능하다는 것을 확인해 주세요. (직접 답글을 달고, 나중에 인용을 추가하도록 편집해 주세요.)
일반적인 규칙으로, 이미 직접 답글인 경우 "언급(mention)"이 있다고 알리는 일은 절대 하지 않아야 합니다.
타이밍 문제를 방지하는 것은 까다로울 것입니다. 사용자/게시물 쌍에 대해 분산 뮤텍스(distributed mutex)가 필요할 것 같은데, 그걸 추가하기 전에 조금 더 지켜봅시다.
제안하는 해결책입니다. 사용자에게 아직 읽지 않은 new reply 알림이 이미 있는 경우, 새로운 알림을 생성하지 않는 것입니다.
new reply 알림이 읽은 상태였다면, 게시물이 편집되었다는 알림을 여전히 표시해야 합니다. 예를 들어 인용문이 추가된 경우와 같이, 이러한 추가 정보가 수신자에게 유용할 수 있기 때문입니다.
확신은 없지만… 이 문제를 조금 과하게 복잡하게 생각하고 있는 것 같습니다.
지금
에 바로 답장을 보내면… 내일 이 게시글을 읽은 후에 돌아와서 "casino"라는 단어를 추가해도 알림을 받지 못할 것입니다.
게시글을 수정했는데, 그것은 당신에게 보낸 직접적인 답장이었습니다.
내가 당신이 실제로 작성한 게시글을 인용하는 수정 사항을 추가하는 것이 왜 더 큰 의미를 가져야 합니까? 이 게시글을 완전히 지우고 대신 얼룩말 사진으로 대체하는 것보다 왜 더 중요합니까? ![]()
![]()
여기서는 단순화해야 한다고 생각합니다… 멘션/직접 답장 유형의 게시글당 알림은 단 하나만… 영원히.
이 문제의 일부가 이 @pmusaraj 의 커밋으로 인해 도입되었을 것이라고 추측합니다: Do not collapse quote notifications · discourse/discourse@27387b0 · GitHub
의도를 잘 이해했어요. 그 부분을 단순화해 보죠.
직접 답변을 수정할 때만 알림이 온다고 생각했는데, 그렇지 않다면 그 패턴을 따르는 게 좋겠네요.
예를 들어, 이런 작은 리스크가 있을 수 있어요.
"크리스야, 그 기능 마무리해 줄래?"라고 게시글을 쓰면,
나는 "물론, 걱정 마"라고 답할 거예요.
그런데 일주일 후에 원래 메시지를 "크리스야, 100만 달러 빌려줄래?"로 바꾼다면,
나는 네가 부탁을 했다는 걸 영원히 모를 거예요 ![]()
그래도 아주 극단적인 경우(edge case)인 것 같아요 ![]()
해당 케이스는 이미 처리되지 않는다고 생각합니다. 현재 우리가 가진 이상한 처리 방식은 다음과 같습니다:
이 시점에서 현재는 중복 알림을 받지 않습니다. 초기 회신에 대해서만 알림을 받습니다. 우리가 가진 이상한 엣지 케이스는 이 모든 일 이후에 인용을 추가하는 경우입니다:
… 그리고 나서 중복 알림을 받게 됩니다.
이 새로운 알림은 전혀 말이 되지 않습니다. 이미 나에게 100만 달러를 빌려주겠다고 약속했는데, 우리는 그 사실에 대해 아무 말도 하지 않았으니까요.
![]()



