1

Azure の VM で Ubuntu 14.04.4 LTS (Trusty Tahr) で GitLab Community Edition 8.8.5 68cd138 を使用しています。

Postfix の構成に失敗したので、SendGrid アカウントで SMTP を使用しようとしました。以前は成功していましたが、今回は成功しませんでした。新しいユーザーが自分のアカウントを作成すると、その人が電子メールを受信することを期待していますが、電子メールを受信することはありません。

そこで、/var/log/gitlab/gitlab-rails/production を調べたところ、次のことがわかりました。

Started POST "/users" for 73.181.210.158 at 2016-06-18 03:45:55 +0000
Processing by RegistrationsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"[FILTERED]", "new_user"=>{"name"=>"mike", "username"=>"mike", "email"=>"michpa@hotmail.com", "password"=>"[FILTERED]"}}
[ActiveJob] Enqueued ActionMailer::DeliveryJob (Job ID: 8059c988-62ef-4d53-adac-966c6f5e3dea) to Sidekiq(mailers) with arguments: "DeviseMailer", "confirmation_instructions", "deliver_now", gid://gitlab/User/5, "BzAurLoc2kgybwF1U1Aj", {}
Redirected to http://gitlab1.westus.cloudapp.azure.com/users/almost_there
Completed 302 Found in 943ms (ActiveRecord: 52.7ms)
Started GET "/users/almost_there" for 73.181.210.158 at 2016-06-18 03:45:56 +0000
Processing by ConfirmationsController#almost_there as HTML
Completed 200 OK in 94ms (Views: 32.9ms | ActiveRecord: 0.9ms)

関連する行はEnqueued ActionMailer::DeliveryJob (Job ID: 8059blahblah) to Sidekiq(mailers) with Arguments: "confirmation_instructions", "deliver_now", gid://gitlab/User/5 - これは GitLab がメールを送信しようとしています。

ログに関するGitLab のドキュメントには、「GitLab は、時間がかかる可能性があるタスクの処理にバックグラウンド ジョブを使用します。これらのジョブの処理に関するすべての情報は、このファイルに書き込まれます」と記載されています。したがって、GitLab がこれを SideKiq に渡すのは理にかなっています。

/var/log/gitlab/gitlab-rails/sidekiq.log を見ると、次のように表示されます。

mike@GitLab1:/etc$ sudo less /var/log/gitlab/gitlab-rails/sidekiq.log
2016-06-18_03:45:56.18949 2016-06-18T03:45:56.189Z 1201 TID-94irw WARN: {"class":"ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper","wrapped":"ActionMailer::DeliveryJob","queue":"mailers","args":[{"job_class":"ActionMailer::DeliveryJob","job_id":"8059c988-62ef-4d53-adac-966c6f5e3dea","queue_name":"mailers","arguments":["DeviseMailer","confirmation_instructions","deliver_now",{"_aj_globalid":"gid://gitlab/User/5"},"BzAurLoc2kgybwF1U1Aj",{"_aj_symbol_keys":[]}],"locale":"en"}],"retry":true,"jid":"a921cf1158df78df6bf7ee2b","created_at":1466221556.1722102,"enqueued_at":1466221556.1723359,"error_message":"Error while trying to deserialize arguments: Couldn't find User with 'id'=5","error_class":"ActiveJob::DeserializationError","failed_at":1466221556.184139,"retry_count":0}
2016-06-18_03:45:56.18957 2016-06-18T03:45:56.189Z 1201 TID-94irw WARN: ActiveJob::DeserializationError: Error while trying to deserialize arguments: Couldn't find User with 'id'=5
2016-06-18_03:45:56.18967 2016-06-18T03:45:56.189Z 1201 TID-94irw WARN: /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/relation/finder_methods.rb:324:in `raise_record_not_found_exception!'
2016-06-18_03:45:56.18968 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/relation/finder_methods.rb:444:in `find_one'
2016-06-18_03:45:56.18968 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/relation/finder_methods.rb:423:in `find_with_ids'
2016-06-18_03:45:56.18969 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/relation/finder_methods.rb:71:in `find'
2016-06-18_03:45:56.18969 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/querying.rb:3:in `find'
2016-06-18_03:45:56.18970 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/core.rb:131:in `find'
2016-06-18_03:45:56.18970 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/globalid-0.3.6/lib/global_id/locator.rb:132:in `locate'
2016-06-18_03:45:56.18971 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/globalid-0.3.6/lib/global_id/locator.rb:158:in `block in locate'
2016-06-18_03:45:56.18972 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/scoping/default.rb:33:in `block in unscoped'
2016-06-18_03:45:56.18972 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/relation.rb:302:in `scoping'
2016-06-18_03:45:56.18973 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activerecord-4.2.6/lib/active_record/scoping/default.rb:33:in `unscoped'
2016-06-18_03:45:56.18973 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/globalid-0.3.6/lib/global_id/locator.rb:158:in `locate'
2016-06-18_03:45:56.18974 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/globalid-0.3.6/lib/global_id/locator.rb:17:in `locate'
2016-06-18_03:45:56.18974 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activejob-4.2.6/lib/active_job/arguments.rb:97:in `deserialize_global_id'
2016-06-18_03:45:56.18975 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activejob-4.2.6/lib/active_job/arguments.rb:83:in `deserialize_argument'
2016-06-18_03:45:56.18975 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activejob-4.2.6/lib/active_job/arguments.rb:40:in `block in deserialize'
2016-06-18_03:45:56.18977 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activejob-4.2.6/lib/active_job/arguments.rb:40:in `map'
2016-06-18_03:45:56.18978 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activejob-4.2.6/lib/active_job/arguments.rb:40:in `deserialize'
2016-06-18_03:45:56.18978 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activejob-4.2.6/lib/active_job/core.rb:90:in `deserialize_arguments'
2016-06-18_03:45:56.18979 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activejob-4.2.6/lib/active_job/core.rb:80:in `deserialize_arguments_if_needed'
2016-06-18_03:45:56.18979 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activejob-4.2.6/lib/active_job/execution.rb:30:in `perform_now'
2016-06-18_03:45:56.18980 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activejob-4.2.6/lib/active_job/execution.rb:21:in `execute'
2016-06-18_03:45:56.18980 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activejob-4.2.6/lib/active_job/queue_adapters/sidekiq_adapter.rb:42:in `perform'
2016-06-18_03:45:56.18980 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/sidekiq-4.1.2/lib/sidekiq/processor.rb:152:in `execute_job'
2016-06-18_03:45:56.18981 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/sidekiq-4.1.2/lib/sidekiq/processor.rb:134:in `block (2 levels) in process'
2016-06-18_03:45:56.18981 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/sidekiq-4.1.2/lib/sidekiq/middleware/chain.rb:128:in `block in invoke'
2016-06-18_03:45:56.18982 /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/sidekiq_middleware/memory_killer.rb:17:in `call'
2016-06-18_03:45:56.18983 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/sidekiq-4.1.2/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
2016-06-18_03:45:56.18983 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/sidekiq-4.1.2/lib/sidekiq/middleware/server/active_record.rb:6:in `call'
2016-06-18_03:45:56.18984 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/sidekiq-4.1.2/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
2016-06-18_03:45:56.18984 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/sidekiq-4.1.2/lib/sidekiq/middleware/server/retry_jobs.rb:74:in `call'
2016-06-18_03:45:56.18984 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/sidekiq-4.1.2/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
2016-06-18_03:45:56.18985 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/sidekiq-4.1.2/lib/sidekiq/middleware/server/logging.rb:11:in `block in call'
2016-06-18_03:45:56.18985 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/sidekiq-4.1.2/lib/sidekiq/logging.rb:32:in `with_context'
2016-06-18_03:45:56.18986 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/sidekiq-4.1.2/lib/sidekiq/middleware/server/logging.rb:7:in `call'
2016-06-18_03:45:56.18988 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/sidekiq-4.1.2/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
2016-06-18_03:45:56.18989 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/sidekiq-4.1.2/lib/sidekiq/middleware/chain.rb:133:in `call'
2016-06-18_03:45:56.18989 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/sidekiq-4.1.2/lib/sidekiq/middleware/chain.rb:133:in `invoke'
2016-06-18_03:45:56.18990 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/sidekiq-4.1.2/lib/sidekiq/processor.rb:129:in `block in process'
2016-06-18_03:45:56.18990 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/sidekiq-4.1.2/lib/sidekiq/processor.rb:168:in `stats'
2016-06-18_03:45:56.18990 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/sidekiq-4.1.2/lib/sidekiq/processor.rb:128:in `process'
2016-06-18_03:45:56.18991 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/sidekiq-4.1.2/lib/sidekiq/processor.rb:80:in `process_one'
2016-06-18_03:45:56.18991 /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/sidekiq-4.1.2/lib/sidekiq/processor.rb:68:in `run'

最も関連性の高い部分は最初の行の終わりだと思います: ActiveJob::DeserializationError: 引数を逆シリアル化しようとしているときにエラーが発生しました: 'id'=5 のユーザーが見つかりませんでした

そのため、作成したばかりの新しいユーザーが (ID 番号 5 を介して) 見つからないため、GitLab はメールを送信できないようです。

他の誰かがこれに遭遇したり、これを修正したりしましたか?

あるいは、次に何を試すべきかアドバイスはありますか?

編集: この問題はhttps://gitlab.com/gitlab-org/gitlab-ce/issues/17250に似ているようです

4

0 に答える 0