# 토픽 종료 시 투표 결과가 반환되지 않음

**URL:** https://meta.discourse.org/t/votes-not-being-returned-on-topic-close/287963
**Category:** Bug
**Tags:** topic-voting
**Created:** [12월 7, 2023, 4:35오후 UTC](https://meta.discourse.org/t/votes-not-being-returned-on-topic-close/287963 "2023-12-07T16:35:09Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![Luke\_Cousins](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/luke_cousins/32/223644_2.png) [@Luke\_Cousins](https://meta.discourse.org/u/Luke_Cousins)
#### Post date: [12월 7, 2023, 4:35오후 UTC](https://meta.discourse.org/t/votes-not-being-returned-on-topic-close/287963/1 "2023-12-07T16:35:09Z")

</div>

> [@sam](#):
>
> 토픽이 닫히거나 아카이브되면, 투표는 사용자에게 반환되어 다른 토픽에 사용할 수 있지만, 해당 토픽의 투표 수는 그대로 유지됩니다.

토픽 타이머로 토픽이 닫힌 경우 이 기능이 제대로 작동하지 않는 것 같습니다. 몇몇 사용자들이 이 문제를 보고해 왔습니다. 방금 [다시 발생](https://community.breww.com/t/get-your-votes-back-when-something-is-complete/3561)했는데, 그가 투표가 소진되었다고 한 것이 사실이라면(작성 시점 기준), 그는 현재 [20개의 투표를 사용](https://community.breww.com/u/justin-hutton/activity/votes) 중(이것이 우리의 한도입니다)이고, 이 중 하나의 토픽이 닫혀 있으므로 하나를 더 사용할 수 있어야 합니다.

이전에 여러 번 언급되었지만, 항상 구식 투표를 "제거"한 후에야 알려주어 제가 직접 확인해 볼 수 없었습니다. 우리가 투표 가능한 스레드의 99%는 마지막 답변으로부터 며칠 후 토픽 타이머로 닫히므로, 버그가 여기서 발생하고 있는 것은 아닌지 의심됩니다.

우리는 최신 플러그인 버전을 사용 중이며, discourse 자체도 최근에 업데이트했습니다:

 ![Screenshot 2023-12-07 at 16.40.42](https://global.discourse-cdn.com/meta/original/4X/6/b/a/6baa29889f88b7e4f744dd06a36de222964d49fd.png)

그럼에도 불구하고 놀라운 플랫폼을 제공해 주셔서 감사합니다 - 정말 좋습니다! 🙏

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [12월 8, 2023, 12:49오후 UTC](https://meta.discourse.org/t/votes-not-being-returned-on-topic-close/287963/2 "2023-12-08T12:49:12Z")

</div>

저도 비슷한 문제를 추적하고 있습니다. 이전에 몇 번 발생했던 것 같은데, 아직 ‘왜’ 그런지 원인을 정확히 파악하지 못한 것 같습니다.

방금 '마지막 게시글 후 닫기’를 위한 토픽 타이머로 테스트해 보았습니다(이것이 제가 찾던 빠진 조각이기를 바라면서 🙂), 하지만 타이머가 작동했을 때 예상대로 투표가 반환되었습니다. ☹

이 문제가 발생한 것으로 확인된 토픽들에 대해 특별하게 발견한 점이 있으신가요?

또한, 데이터 탐색기([data explorer](https://meta.discourse.org/t/32566?silent=true))가 설치되어 있거나 활성화되어 있다면, 아래 쿼리를 사용하여 토픽이 닫히고/또는 아카이브되었지만 투표가 반환되지 않은 과거의 토픽들을 확인해 볼 수 있습니다:

```sql
SELECT 
    dvv.topic_id,
    t.last_posted_at::date,
    tvc.votes_count
FROM discourse_voting_votes dvv
  JOIN topics t ON t.id = dvv.topic_id
  JOIN discourse_voting_topic_vote_count tvc ON tvc.topic_id = dvv.topic_id
WHERE dvv.archive = false
  AND (t.closed = true OR t.archived = true)
GROUP BY 1,2,3
ORDER BY 2

```

---

<div class="post-metadata">

### Author: ![Luke\_Cousins](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/luke_cousins/32/223644_2.png) [@Luke\_Cousins](https://meta.discourse.org/u/Luke_Cousins)
#### Post date: [12월 8, 2023, 3:10오후 UTC](https://meta.discourse.org/t/votes-not-being-returned-on-topic-close/287963/4 "2023-12-08T15:10:59Z")

</div>

감사합니다. 해당 사항에 대해 우리 커뮤니티에서 확인한 결과는 다음과 같습니다:

| topic | last\_posted\_at | votes\_count |
| --- | --- | --- |
| [Pest baiting stations checks](https://community.breww.com/t/pest-baiting-stations-checks/2286) (8) | 2023-03-27 | 1 |
| [Subtype Merchandise/POS/Packaging and other stock item types](https://community.breww.com/t/subtype-merchandise-pos-packaging-and-other-stock-item-types/2058) (4) | 2023-05-17 | 1 |
| [Subtypes Available for Packaging / Ingredients](https://community.breww.com/t/subtypes-available-for-packaging-ingredients/2251) (4) | 2023-05-17 | 1 |
| [API functionality](https://community.breww.com/t/api-functionality/673) (12) | 2023-07-26 | 8 |
| [RE-assign containers](https://community.breww.com/t/re-assign-containers/2978) (14) | 2023-08-15 | 1 |
| [Additional yeast quality metrics such as pH and conductivity](https://community.breww.com/t/additional-yeast-quality-metrics-such-as-ph-and-conductivity/3278) (7) | 2023-10-17 | 1 |
| [Using ingredients supplied by a specific supplier in certain brews](https://community.breww.com/t/using-ingredients-supplied-by-a-specific-supplier-in-certain-brews/2732) (0) | NULL | 2 |

음, 정말 흥미롭네요…

- 이전에 말씀드린 것처럼, 우리 커뮤니티의 대부분의 주제는 주제 타이머를 통해 닫히지만, 이 중 하나를 제외한 모든 주제가 “Close topic” 버튼을 통해 닫혔을 것이라고 생각합니다 (아마도 전부 그랬을 수도 있고요). 주제가 어떻게 닫혔는지 확인할 수 있는 방법이 있을까요? 즉, 타이머가 문제라는 제 추측과 반대로, 문제가 일반적인 닫기 버튼을 통해 닫힌 주제들에서 발생하는 것처럼 보입니다. 이는 매우 큰 우연일 수 있습니다. 이 버튼으로 닫히는 경우는 아주 소수인데, 7개 예시 중 6~7개가 이 버튼과 관련이 있다는 것은 해당 버튼이 문제와 밀접하게 연관되어 있음을 강력히 시사합니다.
- 일부가 아닌, 주제의 모든 투표가 반환되지 않는 것으로 보입니다. (원문: not just a portion of th)
- 두 건이 같은 날 발생했습니다. 그냥 우연일 수도 있겠네요.
- 마지막 주제는 게시자가 삭제했습니다.
- 위에서 언급한 첫 번째 점을 제외하면 뚜렷한 패턴을 찾지 못했지만, 혹시 무언가를 발견하실 수 있을지 직접 스레드를 확인해 보셔도 좋습니다 👍

이제 사용자에게 수동으로 돌려줄 수 있는 방법이 있을까요? 아니면 근본 원인이 발견될 때까지 매일 밤 자동 교정 작업을 수행하는 것도 가능할까요?

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [12월 8, 2023, 3:53오후 UTC](https://meta.discourse.org/t/votes-not-being-returned-on-topic-close/287963/5 "2023-12-08T15:53:54Z")

</div>

> [@Luke\_Cousins](#):
>
> 이 버튼으로 닫히는 비율은 매우 낮을 텐데, 7개의 예시 중 6~7개가 해당된다면 이 버튼이 원인과 관련이 있을 가능성이 매우 높다는 것을 시사합니다.

안타깝게도 그쪽도 원인이 아닌 것 같습니다. 일부 경우에만 발생하는 다른 요인도 혼재되어 있을 것으로 생각됩니다.

> [@Luke\_Cousins](#):
>
> 이제 이 것들을 수동으로 사용자에게 반환할 방법이 있을까요? 아니면 근본 원인이 발견될 때까지 자동화된 야간 교정 작업이라도 가능한가요?

가설을 테스트해 보기 위해, 하나를 다시 열었다가 다시 닫으면 투표가 정상적으로 처리되는지 확인해 볼 수 있을까요? (비투표 카테고리로 카테고리를 이동하면 투표가 반환되므로 이것도 테스트해 볼 가치가 있습니다. 그리고 문제가 지속되는지 확인하기 위해 다시 원래 카테고리로 이동해 보세요)

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [12월 10, 2023, 5:20오후 UTC](https://meta.discourse.org/t/votes-not-being-returned-on-topic-close/287963/6 "2023-12-10T17:20:38Z")

</div>

귀하의 상황과 일치할 수 있는 시나리오를 파악한 것 같습니다. 편집 기록은 공개되어 있지 않지만, 해당 항목들이 종료된 후에 태그를 추가한 것으로 보입니다. 그렇다면 시스템이 해당 표를 '현재’로 다시 표시하는 것을 방지하기 위한 수정 사항을 준비 중입니다. 🤞

---

<div class="post-metadata">

### Author: ![Luke\_Cousins](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/luke_cousins/32/223644_2.png) [@Luke\_Cousins](https://meta.discourse.org/u/Luke_Cousins)
#### Post date: [12월 12, 2023, 9:56오전 UTC](https://meta.discourse.org/t/votes-not-being-returned-on-topic-close/287963/9 "2023-12-12T09:56:34Z")

</div>

> [@JammyDodger](#):
>
> 가설을 검증해 보기 위해, 다시 열었다가 다시 닫아 보면 투표가 정상적으로 처리되는지 확인할 수 있을까요? (비투표 카테고리로 이동하면 투표가 반환되어야 하므로, 이것도 테스트해 볼 가치가 있습니다. 그리고 문제가 계속되는지 확인하기 위해 다시 원래 카테고리로 이동해 보세요.)

네, 투표가 반환됩니다 (데이터 탐색기 보고서에 따르면) 👍

> [@JammyDodger](#):
>
> 여러분의 상황과 일치할 수 있는 시나리오를 파악한 것 같습니다. 편집 이력은 공개되어 있지 않지만, 게시물이 닫힌 후에 태그를 추가한 것 같습니다. 만약 그렇다면, 시스템이 해당 투표를 다시 ‘현재’ 상태로 표시하는 것을 방지하기 위한 수정안이 개발 중입니다.

아, 맞습니다. 그것이 원인일 것 같습니다 💥 보통 우리는 태그(예: “idea-completed” 등)를 추가한 후 토픽 타이머로 닫습니다. 즉시 닫는 특별한 경우에도 보통 태그를 추가하지만, 이는 ‘닫기’ 버튼 클릭 전후로 몇 초 안에 이루어질 수 있습니다(이전에 이에 대해 깊이 생각해 본 적이 없습니다). 이것이 모두 ‘닫기’ 버튼을 사용하여 닫힌 것이 '우연’인 것처럼 보였던 이유를 설명해 줍니다!

도움 주셔서 감사합니다, 정말 감사드립니다 🙏 수정판 릴리스를 기다리고 있습니다.

---

<div class="post-metadata">

### Author: ![Luke\_Cousins](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/luke_cousins/32/223644_2.png) [@Luke\_Cousins](https://meta.discourse.org/u/Luke_Cousins)
#### Post date: [12월 12, 2023, 10:12오전 UTC](https://meta.discourse.org/t/votes-not-being-returned-on-topic-close/287963/10 "2023-12-12T10:12:07Z")

</div>

게시글 하나가 작성자에 의해 삭제되었고, 이로 인해 투표가 반환되지 않은 것으로 보입니다. '열기’한 뒤 '닫기’를 시도해도 여전히 투표가 반환되지 않습니다. 어떤 조치를 취하는 것이 좋을까요? 아니면 데이터 수정을 위한 마이그레이션과 함께 버그가 수정될 예정이라면, 그때까지 기다려도 될까요?

 ![image](https://global.discourse-cdn.com/meta/original/4X/9/a/b/9ab3b3dd228b1c35e85ef0746f213aa650d5cee8.png)

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [12월 12, 2023, 11:05오전 UTC](https://meta.discourse.org/t/votes-not-being-returned-on-topic-close/287963/11 "2023-12-12T11:05:12Z")

</div>

> [@Luke\_Cousins](#):
>
> 도와주셔서 감사합니다. 정말 감사드립니다 🙏 수정 버전이 나올 날을 기대하고 있습니다.

걱정 마세요. 🙂 그리고 이제 수정 버전도 나왔습니다:

> <https://github.com/discourse/discourse-topic-voting/pull/175>
>
> We were triggering the \`vote\_reclaim\` job on scenarios where votes shouldn't be …reclaimed:
> 
> \- editing a closed/archived/deleted topic's \`tracked\_topic\_fields\` (\`title\`/\`archetype\`/\`tags\`) field while not changing the \`category\_id\`
> 
> \- moving a closed/archived/deleted topic to a different, votes-enabled category
> 
> \- unarchiving a closed topic
> 
> \- opening an archived topic
> 
> Tests were also added covering these use cases.

이 수정으로 인해 향후 이러한 문제가 발생하는 것을 방지할 수 있지만, 이미 발생한 문제는 해결되지 않습니다.

Rails 콘솔을 통해 초기화하는 것이 가능하지만, 해당 문제가 발생한 항목이 많지 않다면 UI를 통해 ‘투표 반환’ 메커니즘을 트리거하는 것이 더 쉬울 것입니다.

> [@Luke\_Cousins](#):
>
> 게시글 중 하나가 작성자에 의해 삭제되었고, 이로 인해 투표가 반환되지 않는 것 같습니다. '열기’를 한 후 '닫기’를 해도 투표가 반환되지 않습니다. 어떻게 하는 것이 좋을까요? 아니면 데이터 수정을 위한 마이그레이션과 함께 버그 수정이 나올 예정이라면, 그걸 기다리면 될까요?

음. 🤔 안타깝네요. 게시글을 복원한 후 `#staff` 카테고리로 이동시키고, 그곳에서 닫고 아카이빙을 해보실 수 있습니다. 이 세 가지 동작 중 어느 하나를 수행하면 투표가 해제되어야 하므로, hopefully 하나쯤은 효과가 있을 것입니다. 🤞 그래도 안 되면, 문제가 계속된다면 Rails 방식을 사용해 보겠습니다.

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [4월 9, 2024, 11:18오전 UTC](https://meta.discourse.org/t/votes-not-being-returned-on-topic-close/287963/13 "2024-04-09T11:18:13Z")

</div>


