알 수 없는 이유로 'Gamification' 및 'Reactions' 플러그인을 설치할 수 없음

안녕하세요,

Gamification와 Reactions 플러그인을 사용해 보았습니다. 그러나 이 두 플러그인은 제 테스트 인스턴스에서 불안정한 것 같습니다.

아직까지 컨테이너를 재구축하여 상황이 달라지는지 확인해 보았지만, 변화는 없었습니다. 이전에 추가했던 다른 두 플러그인인 Solved과 BBcode는 문제가 없습니다.

이러한 동작의 원인을 파악하기 위해 추가로 확인해 볼 수 있는 것이 있을까요?

발생하는 현상:

  • 플러그인 기능이 작동하지 않습니다.
  • 플러그인이 Installed plugins(설치된 플러그인) 목록에서 사라집니다.
  • 플러그인이 목록에 존재하더라도 구성 옵션이 없다고 표시될 수 있습니다.
  • 플러그인 구성 옵션이 존재하는 경우, 변경 시 xxxx_xxxx_xxxx라는 이름의 구성 매개변수가 존재하지 않는다는 오류가 발생할 수 있습니다.

다시 확인한 사항:

  • 재구축 로그 - 플러그인 관련 오류 없음.
  • 웹 브라우저 개발자 콘솔 - 페이지를 더 이상 로드할 수 없을 때 발생하는 404 오류를 제외하고는 오류 없음.
  • Rails/Unicorn 로그 - 의심스러운 내용 없음.

Discourse 버전:

  • v3.5.0beta7 (tests-passed chain)

app.yml 파일의 플러그인 섹션을 여기에 보내주실 수 있나요?
감사합니다!

이 부분인가요?

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          #- git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-bbcode.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-reactions.git
          - git clone https://github.com/discourse/discourse-gamification.git

음… 전반적으로 크게 문제가 없어 보입니다. Docker Manager 플러그인을 왜 주석 해제했는지 여쭤봐도 될까요?

그것이 문제의 원인이 될 수도 있으니, 해당 플러그인을 다시 주석 처리한 뒤 재빌드해 보시겠어요?

HA를 위해 rev-proxy 뒤에 여러 호스트 시스템을 두고 있습니다. 그중 하나는 Discourse를 빌드/재빌드하는 데 사용되고, 나머지는 호스팅 전용입니다. Docker Manager 플러그인이 이러한 시나리오에서는 작동하지 않을 것 같아서 비활성화해 두었습니다.

이 플러그인이 비활성화되어 있으면 이 두 가지에 문제가 생기는 이유가 무엇일까요? 목록에서 그냥 제거하는 게 나을까요?

그렇다면 아닐 수도 있겠네요. 정말 이상하네요. 플러그인 페이지의 스크린샷을 공유해 주시겠어요?

수정: 이제 있어야 할 것 같지만, 언급된 두 플러그인이 왜인지 모르게 누락되어 있습니다.

페이지 새로고침 후

그러면… 페이지를 새로고침한 후 이제 작동하나요? Settings를 클릭하면 플러그인의 설정이 로드되나요?
아니면 여전히

현재는 빈 설정 페이지만 로드됩니다.

수정: 새로고침 시 설정이 로드됩니다. 하지만 언급했듯이, 일단 동작은 하지만 어떤 일이 발생하면 다시 로드되지 않습니다.

아주 이상하네요. 실제로 포럼에서 플러그인을 사용할 수 있나요? (예: /leaderboard 명령어 사용, 게시물에 반응하기 등)

예전에 Gamification 플러그인을 시도했을 때 50% 확률로 로딩이 되기도 하고 안 되기도 했습니다. Reactions 플러그인은 아예 로딩되지 않는 것 같습니다. 반응 선택 기능 없이 기본 좋아요 기능만 작동했죠.

무언가를 발견한 것 같습니다. 캐시가 없도록 개인/시크릿 탭에서 빌드를 다시 구성하며 실험을 해봤습니다. 두 플러그인을 모두 활성화하고 Discourse를 빌드할 때마다 S3 버킷에서 존재하지 않는 두 개의 자산을 로드하려고 시도하는 것을 확인했습니다. 또한 리빌드 로그에서도 이 두 자산에 대한 참조를 찾을 수 없었습니다. 아마도 이 플러그인들이 Minio S3에 자산/업로드를 저장하는 Discourse 설정과 호환되지 않는 것일까요? 이미 구문 하이라이터를 위한 우회 방법을 만들어야 했습니다.

리빌드 후 S3에 존재하지 않는다고 언급된 자산:

S3_URL/assets/chunk.86b59b318d00d6f8db6a.d41d8cd9.br.js
S3_URL/assets/chunk.23e5cc7cf06d7f53c6f5.d41d8cd9.br.js

잠깐. 아니. 완전한 사용자 실수(PEBKAC)였어. 모니터링 설정에 오류가 있어서, host-only 노드에서 구 컨테이너를 꺼놓지 않은 걸 알아채지 못했거든. 그래서 테스트용 빌드 노드에는 새로운 플러그인이 포함된 더 새로운 discourse 3.5.0beta8이 있고, 다른 노드에는 해당 플러그인이 없는 구버전 3.5.0beta7이 실행 중이었어. 그리고 리버스 프록시가 least-connections 방식으로 설정되어 있어서 웹 인터페이스가 이 노드들 사이에서 리소스를 로드하는 동안 완전히 엉망이 됐지…

지금 언급된 플러그인들과 함께 모든 기능이 정상적으로 작동하고 있어. 이제 이 토픽을 삭제할까, 아니면 비슷한 바보 같은 상황에 빠질 수 있는 누군가를 위해 참고용으로 남겨둘까?