Topic keeps getting deleted

I have a topic at my site that someone (let’s call them X) posted and then deleted because of some erroneous information. I undeleted it and asked X posted a correction underneath their original post.

Since that time the topic keeps getting deleted. I’ve undeleted it twice and it looks okay but after a little while it appears as deleted again.

What’s going on?

5개의 좋아요

Is it possible that the user in question keeps deleting it? I’ve had users who would rather delete posts than endure the “embarrassment” of correcting themselves.

1개의 좋아요

Check your log (admin/logs/staff_action_logs) to see if the user is deleting them. The log will show those posts that were both edited and deleted… and by whomever deleted them. You can click on the information icon for more info as well.

Some users have changed their minds about keeping a post for that and many other reasons. Sometimes it’s just one of those situations where one feels it’s just better to forget what they were going to say. Sometimes you just have to accept their reason, even if one isn’t given. :wink:

4개의 좋아요

Users can’t insta-delete topics or posts, though. All they can do is trigger a 24 hour pending delete, which will be a public intent stated in the topic or post, like so:

(post withdrawn by author, will be deleted in 24 hours unless flagged)

Additionally, you can only do this for topics if they have no replies, and the topic is 1 day old or less.

5개의 좋아요

this happens for us as well when a topic gets deleted by the system, that is 24 hours after a post is deleted by the author, there is no way to bring it back; even if we recover it, it gets deleted automatically again after 30 min.

5개의 좋아요

I’ve talked with the user and, as far as I can understand, they’re not constantly deleting it. They were actually surprised about it, as they alerted me to the issue in the first place.

Here’s what my logs look like:

(Thanks @JimPas for the suggestion!)

Any ideas? Any more data I can provide to help troubleshoot the issue? It seems that @Pad_Pors may have encountered something similar.

3개의 좋아요

이후로 해결책을 찾으신 분이 계신가요? 저희도 동일한 문제를 겪고 있습니다.

한 사용자가 게시글을 작성했다가 삭제했고, 이후 게시글 복원을 요청한 후로 시스템이 계속 게시글을 삭제하고 있습니다(첫 번째 게시글이므로 전체 토픽이 삭제되는 상태입니다).

토픽 내용을 새 토픽으로 이동할 수는 있지만, 그러면 원래 URL을 따라온 사람들이 페이지를 찾을 수 없다는 오류 화면으로 이동하게 됩니다.

5개의 좋아요

월요일에 이 문제를 재현해볼 수 있을까요, @tshenry?

5개의 좋아요

안녕하세요 @AstonJ

재현 단계를 확인해 주실 수 있을까요? 제가 테스트하고 있는 내용이지만, 말씀이 맞는지에 대해 확인하고 싶습니다.

  1. 사용자가 주제를 생성합니다.
  2. 사용자가 주제를 삭제합니다.
  3. 주제가 예약 삭제 상태로 전환됩니다:
  4. 24시간 후 주제가 자동으로 삭제됩니다.
  5. 사용자가 스태프에게 주제 복원을 요청합니다.
  6. 스태프가 삭제된 주제를 찾아 복원합니다.
  7. 복원 후 시스템이 다시 삭제합니다.

다르게 진행해야 할 부분이 있다면 알려주세요.

2개의 좋아요

테일러님 안녕하세요 - 해당 주제는 4월에 게시되었는데, 다음과 같은 일이 발생한 것 같습니다:

  1. 사용자가 ‘제출’ 버튼을 눌러 주제를 생성함 (이때 주제 템플릿이 게시됨 - 사용자는 이를 편집할 수 없다고 함)
  2. 사용자가 두 번째 게시물에 내용을 작성한 후 첫 번째 게시물을 삭제함
  3. 첫 번째 게시물이 예약 삭제 상태로 전환됨
  4. 사용자가 전체 주제가 사라지는 건 아닌지 우려하여 직원에게 문의함
  5. 직원이 첫 번째 게시물을 복원하고, 두 번째 게시물의 내용을 복사하여 붙여넣은 뒤 두 번째 게시물을 삭제함
  6. 주제가 4월 8일부터 4월 17일까지의 게시물과 함께 활성 상태로 유지됨
  7. 그 후 시스템이 주제를 삭제함 (정확한 시점은 불명) 수정: 한 모더레이터가 시스템이 7월 7일에 삭제했다고 확인함

어제 사용자가 자신의 주제가 어디 있는지 문의하는 게시물을 올렸을 때 비로소 이 문제가 발생하고 있음을 발견했습니다.

추가로 필요한 사항이 있으면 알려주세요 (참고로 반복적으로 삭제되는 주제는 이 주제입니다).

4개의 좋아요

음. 1단계에서 무슨 일이 일어나는지는 완전히 이해하지 못했지만, 결론적으로 사용자가 주제를 생성했다는 전제 하에 2단계는 불가능해 보입니다. 일반 사용자로 주제를 생성한 후 답변을 남기고, 첫 번째 게시글(즉, 주제 글)을 삭제하려고 하면, 첫 번째 게시글은 삭제 대상으로 표시되지 않습니다. 이는 의도된 동작입니다.

3개의 좋아요

내 경우에는 다음과 같이 진행되었습니다:

  1. 사용자가 주제를 생성합니다.
  2. 삭제합니다.
  3. 제가 복구합니다.
  4. 잠시 후 다시 삭제됩니다.

정확한 시간대는 확실하지 않습니다.

4개의 좋아요

나도 여러 번 같은 일이 발생한 것을 확인했습니다.

2개의 좋아요

제가 파악한 바로는, 게시물이 삭제 예정으로 지정된 경우 일반 사용자의 주제에서 스태프에게는 “삭제 취소” 버튼이 제공되지 않습니다. 대기 기간 동안에는 원글 작성자만 게시물을 삭제 취소할 수 있습니다. "삭제 취소했다"고 말씀하신 것이 자동 삭제가 발생한 후에 이루어진 것을 의미합니까?

1개의 좋아요

아, 그래, 테일러! 미안해! 아마도 첫 번째 게시물을 삭제한 뒤 두 번째 게시물을 올린 것 같아. 기억이 정확하진 않지만, 그렇게 할 수 있는 것 같아.

1개의 좋아요

다음과 같은 상황을 확인했습니다:

  1. 사용자가 주제를 생성합니다.
  2. 사용자가 주제 게시글을 삭제하고, 삭제를 예약합니다. (저는 delete_removed_posts_after 사이트 설정을 1로 변경했습니다)
  3. 지정된 시간이 지난 후 주제가 삭제됩니다.
  4. 스태프가 주제를 삭제 해제하고 게시글을 원래 버전으로 되돌립니다. (복원만 수행하면 게시글이 "저자가 주제를 철회했으며, 신고되지 않는 한 1시간 후 자동으로 삭제됩니다"라는 메시지와 함께 복원됩니다)
  5. 일정 시간이 지난 후 주제가 다시 삭제됩니다.

현재 발생하고 있는 상황: 사용자가 자신의 주제 게시글을 삭제하면 user_deleted라는 속성이 true로 설정됩니다. 30분마다 실행되는 DestroyOldDeletionStubs라는 백그라운드 작업이 있습니다. 이 작업은 PostDestroyer.destroy_stubs 함수를 실행하여 데이터베이스를 검색하고, user_deleted가 true로 설정되어 있고 "삭제 타이머"가 만료된 게시글을 삭제합니다.

문제점: 스태프가 게시글을 복원할 때 user_deleted가 false로 설정되지 않습니다. 따라서 DestroyOldDeletionStubs가 다음에 실행될 때 게시글이 다시 삭제됩니다.

해결책: staff_recovered 함수에 user_deleted를 false로 설정하는 로직을 추가해야 할 것으로 확신합니다. (user_recovered 함수는 이미 이 작업을 수행합니다) discourse/lib/post_destroyer.rb at main · discourse/discourse · GitHub 를 참조하세요.

즉시 해결 방법: 주제 게시글을 복원하고 해당 게시글 ID를 확인한 후, rails 콘솔에서 다음을 실행하세요:

Post.find_by_id(POST_ID).update(user_deleted: false)

게시글 ID는 주제 URL 끝에 .json을 붙여 쉽게 찾을 수 있습니다. 예를 들어 이 주제를 사용하면: https://meta.discourse.org/t/topic-keeps-getting-deleted/128013.json. 이 경우 주제 게시글 ID는 632362입니다.

10개의 좋아요

아하, @eviltrout 문제를 수정해야겠네요

훌륭한 탐정 활약이네요, @tshenry!

6개의 좋아요

잘하셨네요, Taylor :slight_smile:

위 방법으로 해결하려는 다른 분들은 먼저 게시물/토픽을 삭제 취소(undelete)해야 합니다. 그렇지 않으면 find가 nil을 반환합니다.

4개의 좋아요

아직도 이 문제를 경험하고 있습니다. user_deleted를 false로 설정하는 작업에 진전이 있었나요?

호스팅 인스턴스에 적용할 수 있는 간단한 수정 방법이나 우회책이 있을까요?

2개의 좋아요

제 생각에는 다음과 같이 하면 됩니다:

  • 해당 사용자를 스태프로 지정
  • 해당 사용자로 임페르소네이트
  • 해당 게시글 복구
  • 사용자의 스태프 권한 해제
2개의 좋아요