사용자 병합이 고장 났나요?

방금 Discourse 설치 버전을 2.7 beta 2에서 2.7 beta 3로 성공적으로 업데이트한 후, 두 계정에 걸쳐 약 270개의 게시글을 작성한 사용자의 '사용자 병합(merge users)'을 시도했습니다.

45분이 지났는데도 웹사이트가 여전히 회색으로 표시되고 'Changing post ownership(게시글 소유권 변경 중)'이라는 메시지가 떠 있습니다. 어딘가에서 프로세스가 멈춘 것 같습니다.

이 기간 동안 포럼에는 다른 활동이 거의 없었습니다(다른 로그인된 사용자가 없었음).

포럼에서 단서를 찾기 위해 검색하던 중, Discourse가 해당 기능을 네이티브로 포함하기(2.5.0 beta 3부터) 시작하여 '곧 깨질 수 있다’고 언급된 Merge Users 플러그인에 대한 게시글을 발견했습니다.

저는 여전히 해당 플러그인(버전 0.1)이 설치된 상태이지만, 이번에는 우연히도 플러그인 메뉴에서 병합을 시작하지 않고 사용자 프로필 페이지(우측 하단)에 있는 ‘Merge(병합)’ 버튼을 직접 사용했습니다. 즉, 플러그인이 아닌 Discourse의 네이티브 도구를 호출한 것으로 추정됩니다.

프로세스가 멈춘 것이 플러그인 때문인지 Discourse 자체 때문인지 확실하지 않습니다.

다른 브라우저 세션을 통해 관리자로 사이트에 접근할 수 있으며, 두 프로필이 여전히 존재하는 것을 볼 수 있습니다. 병합 대상이었던 오래된 게시글 중 9개를 제외한 나머지는 이제 새로운 대상 계정에 연결되어 있습니다. 그 숫자 옆에는 이번 병합 시도와 관련이 있을 수도 있고 없을 수도 있는 경고 메시지가 표시되어 있습니다: 'Can't delete all posts. Some posts are older than 60 days old. (The delete_user_max_post_age setting.)'(모든 게시글을 삭제할 수 없습니다. 일부 게시글은 60일 이상 되었습니다. (delete_user_max_post_age 설정.))

우연히도 성공적으로 병합된 모든 게시글이 60일 이상 된 것이었기 때문에 이 경고가 무엇을 의미하는지 알 수 없습니다.

(아직 진행 중이라고 가정하고) 프로세스를 깔끔하게 종료하고 데이터베이스 손상을 방지하려면 지금 어떻게 해야 하나요?

결국 포기하고 회색으로 변해 있던 브라우저 창을 새로고침했는데, 아무 일도 없었던 것처럼 사이트가 다시 열렸고, 여전히 병합되지 않은 9개의 게시물이 남아 있는 기존 버전의 사용자 계정이 표시되었습니다.

delete_user_max_post_age를 99999로 설정한 후 다시 시도해 보았지만 결과는 동일했습니다. 그 다음 반대 방향으로 병합을 시도해 보았지만, 역시 같은 결과였습니다.

결국 플러그인을 다시 사용해 보았는데, 이번에는 처음 시도부터 완벽하게 작동했고, 불과 1~2분 만에 처리되었습니다.

따라서 현재까지의 증거를 보면, Discourse 2.7 beta 3의 병합 기능이 어떤 형태로든 깨져 있는 것으로 보이지만, 플러그인은 여전히 정상적으로 작동합니다.

제가 테스트해 보니 잘 작동합니다. 플러그인이 설치되어 있었기 때문에 문제가 있었던 것일 수도 있겠네요. 여기서는 #plugin:broken-plugin으로 분류되어 있습니다. 결국 수정을 완료해서 다행입니다.

감사합니다. 다음에 네이티브 병합 과정에서 상황이 개선되지 않을 경우 언제든 다시 설치할 수 있을 것 같으므로, 플러그인을 제거하겠습니다.

병합되는 게시글의 경과 시간이나 출처가 원인이 된 것은 아닐까요? 이 게시글들은 모두 현재 폐쇄된 Yahoo Groups 포럼에서 가져온 것들이며, 해당 이메일 주소에 해당하는 활성 사용자가 없을 때 가져오기 과정에서 ‘좀비’ 사용자가 생성되었습니다. 이 오래된 사용자 계정이 바로 그런 사례라고 생각합니다.