Closed tkusukawa closed 1 year ago
バックトレースを見せてもらえますか?
申し訳ありません。バックトレースとは何でしょうか。
Cronの結果メールやコマンドラインから実行した結果として表示される fatal: Not a valid object name 70~bd:myapp という表示が出るか出ないかしか、実行結果の違いが解っていません。
Cronからのメールを確認できましたので以下に共有します。
差出人: Cron Daemon root@****.jp 送信日時: 2022年12月10日 22:23 宛先: root@.jp <root@.jp> 件名: Cron root@redmine cd /opt/redmine; RAILS_ENV=production bin/rails full_text_search:synchronize
fatal: Not a valid object name 70fe3edc8002175470d44c7534079788c998c1bd:myapp fatal: Not a valid object name 70fe3edc8002175470d44c7534079788c998c1bd:myapp fatal: Not a valid object name 70fe3edc8002175470d44c7534079788c998c1bd:myapp fatal: Not a valid object name 70fe3edc8002175470d44c7534079788c998c1bd:myapp/migrations fatal: Not a valid object name 70fe3edc8002175470d44c7534079788c998c1bd:myapp fatal: Not a valid object name 70fe3edc8002175470d44c7534079788c998c1bd:myapp fatal: Not a valid object name 70fe3edc8002175470d44c7534079788c998c1bd:myapp fatal: Not a valid object name 70fe3edc8002175470d44c7534079788c998c1bd:myapp fatal: Not a valid object name 70fe3edc8002175470d44c7534079788c998c1bd:templates
なんと、Rubyのバックトレースはでていないんですか。。。
発生箇所を探したところ、 change_mapper.rb の upsert_fts_target関数の中の
entry = RepositoryEntry.new(~)
の処理でエラーが出ていました。
ということだったのでバックトレースから該当箇所を見つけたのかと思っていました。
これは該当箇所をコメントアウトしたりして該当メッセージが出なくなるかどうかを見て判断したということですか?
> これは該当箇所をコメントアウトしたりして該当メッセージが出なくなるかどうかを見て判断したということですか?
はい。原始的でお恥ずかしいのですが、 rbファイルに puts行を入れて synchronizeを実行して通過タイミングを確認することを繰り返しました。
ちょっとどうしてこれでそのログが出なくなるのかわかっていない(RepositoryEntry.new(...)
でなにかそのログが出るようなGitのコマンドを実行するとは思えない)のですが、問題が発生している環境ではこれででなくなるということなのでマージします。
Gitでフォルダ削除した後、
bin/rails full_text_search:synchronize
の処理で次のようなエラーが出るようになりました。fatal: Not a valid object name 70~bd:myapp
発生箇所を探したところ、 change_mapper.rb の upsert_fts_target関数の中の
entry = RepositoryEntry.new(~)
の処理でエラーが出ていました。このentryは 後段の
case @record.action when "A", "M", "R"
の中で利用されていて when "D" では不要なようなので entry = RepositoryEntry.new(~) を case @record.action when "A", "M", "R" の中で処理したほうが良いと思ったのですが、 如何でしょうか。