새 할당량 적용 후 AI 재구축 실패

이건 더나고 덜하고 버그 같은 것인 것 같지만, 어쨌든. 얼마 전 재빌드(rebuilding)가 실패했습니다. Discourse AI 없이 진행했을 때는 통과했습니다.

이것은 처음 나타난 이상한 로그인데, 관련이 있다고 생각하지는 않습니다.


I, [2025-01-21T10:15:39.800894 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle install --jobs $(($(nproc) - 1)) --retry 3'
WARN: Unresolved or ambiguous specs during Gem::Specification.reset:
      stringio (>= 0)
      Available/installed versions of this gem:
      - 3.1.2
      - 3.1.1
WARN: Clearing out unresolved specs. Try 'gem cleanup <gem>'
Please report a bug if this causes problems.

여기서부터 시작됩니다.

I, [2025-01-21T10:16:08.572988 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
Plugin name is 'discourse-microsoft-auth', but plugin directory is named 'discourse-plugin-office365-auth'
rake aborted!
ActiveRecord::DuplicateMigrationNameError:  (ActiveRecord::DuplicateMigrationNameError)

Multiple migrations have the name EnablePgVectorExtension.

그리고 마지막으로 다음과 같이 정보가 적은 부분을 받았습니다:

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 990 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1

이건 관련이 없다고 생각하지만, 테마에서 오는 게 아니라 플러그인에서 오는 문제이고, 이건 같은 시점에 시작되었거든요 — 적어도 제겐 그렇습니다.

Solved에 두 개의 마크가 표시됩니다:

플러그인을 제거해서 언제부터 정상 작동하는지 확인하는 것부터 시작하겠습니다.

플러그인당 20분씩… 다른 AI 플러그인과 충돌하지 않는다는 것을 충분히 알고 있습니다. 그 테스트를 위해 1시간 넘게 다운타임을 겪었습니다.

하지만 물론, 해보겠습니다. 그리고 DAI를 제외한 모든 것은 정상적으로 작동합니다.

이제 작업은 끝났습니다. 왜 이런 식으로 되어 있는지 이해는 하지만, 플러그인과 관련해 다른 방식으로 대응할 필요가 있습니다. 물론 컨테이너를 분리하는 것도 방법이지만…

어쨌든, 쿼터 시스템이 도입된 이후 Discourse AI와 Discourse AI Topic Summary 🤖 사이에 충돌이 발생하고 있습니다. 재빌드 시에는 다른 하나를 비활성화해야 합니다.

그래서 @merefield와 누가 무엇을 할지 논의하도록 여러분에게 맡기겠습니다.

오류 내용을 공유해 주실 수 있을까요?

OP에서보다 더 많은 것이 박스에 나와 있지는 않습니다.

오류가 Microsoft Auth에서 발생한 건가요?

아, 잠깐 “stringio”…: :thinking:

말씀하신 그 디렉터리 이름 관련 부분이 맞으신가요? 제 기억으로는 전혀 의미가 없는데, 꽤 오래전부터 존재해 왔습니다.

아래 내용은 제가 잘 알고 있습니다.

  • 둘 다 활성화되어 있으면 재빌드가 불가능합니다.
  • 'other’만 활성화되어 있으면(어떤 것이든), 다른 플러그인은 관계없이 재빌드가 가능합니다.
  • 이 문제는 DAI가 할당량을 받게 된 시점부터 시작되었습니다.

제가 직접 AI 플러그인을 작성했기 때문에 두 기능이 모두 포함된 인스턴스가 없어서 재현하기가 어렵습니다.

그래도 AI 주제 요약 기능이 포함된 프로덕션 인스턴스를 다시 구축해서 이상한 부분이 있는지 확인해 보겠습니다.

이거일 수도 있겠네요 … 이름을 변경하겠습니다!

그것이었을 것 같고, 이제 해결되었을 겁니다.

맞아요.

감사합니다!

좋아요! 참고로 이건 분명히 내 실수였고, DAI의 문제가 아니었어요.

우연히도 그 마이그레이션과는 크게 관련이 없었지만, AI Topic Summary의 리팩터링 릴리스를 직전에 진행했고 그냥 함께 번들링했어요. 해당 릴리스에서는 적절한 CI와 Zeitwerk 준수 사항을 추가했습니다.