최신 업데이트 후에도 같은 문제가 발생합니다. 재빌드를 통해 업데이트한 것 외에는 변경 사항이 없는데, 관리자 대시보드에서 sidekiq이 실행되지 않는다고 표시됩니다. postgres/redis는 컨테이너 하나에, 앱은 다른 컨테이너에 있으며, 모두 다시 시작해 보았습니다. 큐에는 몇백 개의 작업이 쌓여 있지만 아무것도 처리되지 않습니다.
EDIT1: 모든 큐를 비워 보았지만 문제가 해결되지도, 도움이 되지도 않았습니다. 큐가 다시 채워지는데도 여전히 처리되지 않습니다.
EDIT2: 이로 인한 다운타임이 발생하더라도 포럼을 재빌드해 보았지만 여전히 이 메시지가 나타납니다:
그리고 /sidekiq에서 큐가 처리되지 않습니다. 2.4.0.beta7에서 2.4.0.beta9로 업데이트하기 전까지는 모두 정상적으로 작동하고 있었습니다.
EDIT3: 50기가바이트 이상의 여유 공간이 있습니다. 수동으로 백업을 실행해 보면(약 300메가바이트) 성공적으로 수행되며, sidekiq을 일시 정지했다가 재개한다고 표시되고 로그에는 오류가 보고되지 않지만, sidekiq은 여전히 실행되지 않는 것처럼 보입니다?
EDIT4: /logs에서 주목할 만한 로그는 반복적으로 나타나는 Sidekiq heartbeat test failed, restarting뿐입니다.
EDIT5: Redis는 정상적으로 실행되고 있는 것 같습니다. 적어도 로그 파일에는 할 일이 많지 않다고 계속 표시되고 있습니다… 그리고 명확히 하기 위해:
[3] pry(main)> Sidekiq.paused?
=> false
EDIT6: 조금 전에 큐를 비웠는데, 다시 10개의 작업이 큐에 쌓였지만 처리되지 않습니다.
EDIT7: 일반적인 프로젝트에서 sidekiq을 시작하는 일반적인 방법은 bundle exec sidekiq라는 것을 알게 되었고, 그래서 실행해 보겠습니다:
root@vps198273-forum:/var/www/discourse# bundle exec sidekiq
2020-01-06T05:10:18.814Z pid=31242 tid=gn383wxbu INFO: Booting Sidekiq 6.0.4 with redis options {:host=>"forum-data", :port=>6379, :namespace=>"sidekiq", :id=>"Sidekiq-server-PID-31242", :url=>nil}
You are connecting to Redis v3.0.6, Sidekiq requires Redis v4.0.0 or greater
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/cli.rb:62:in `run'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/bin/sidekiq:12:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/sidekiq:23:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/sidekiq:23:in `<top (required)>'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/cli/exec.rb:63:in `load'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/cli/exec.rb:63:in `kernel_load'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/cli/exec.rb:28:in `run'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/cli.rb:476:in `exec'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/vendor/thor/lib/thor.rb:399:in `dispatch'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/cli.rb:30:in `dispatch'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/vendor/thor/lib/thor/base.rb:476:in `start'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/cli.rb:24:in `start'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/exe/bundle:46:in `block in <top (required)>'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/friendly_errors.rb:123:in `with_friendly_errors'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/exe/bundle:34:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
You are connecting to Redis v3.0.6, Sidekiq requires Redis v4.0.0 or greater
음, 이건 흥미롭네요? 데이터 컨테이너를 재빌드해 보고 데이터에 손대는 것에 대한 공포로부터 기도해 보겠습니다, 하하…
EDIT8: Redis 5.0.5가 실행되고 있는 것 같습니다(왜 postgresql pubsub를 이 용도로 사용하지 않는 걸까요?). 이는 분명히 4.0.0 이상입니다… 재빌드가 완료되었고 포럼을 테스트해 보니 데이터가 여전히 있는 것 같으며, 스파이크가 나타났습니다!
해결된 것 같습니다! 이 게시글이 누군가에게 도움이 될 수도 있겠네요. 포럼에서 sidekiq이 보고한 오래된 redis에 대한 오류를 보여줬으면 좋았을 텐데, 아마도 그 로그들은 어디론가 사라진 것 같습니다. 어디서도 보이지 않았거든요. ^.^

