筆者が通っているユーザーさんでは、redmineに独自開発含めプラグインを10個くらい入れて使っているのですが、何時からかInternalErrorが出るようになり、その調査を依頼されました。
状況的にはチケットの一覧や詳細を表示する時、たまにInternalErrorとなる事があり、ただ再表示すれば普通に表示されるという何とも解りにくい状況。。
redmineのログには下記InternalError発生時の内容が出力されています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Completed 500 Internal Server Error in 6169.9ms ActionView::Template::Error (undefined method `deep_symbolize_keys' for #<String:0x007f34da039088>): 50: <p id="start_date_area"> 51: <%= f.text_field(:start_date, :size => 10, :disabled => !@issue.leaf?, 52: :required => @issue.required_attribute?('start_date')) %> 53: <%= calendar_for('issue_start_date') if @issue.leaf? %> 54: </p> 55: <% end %> 56: lib/redmine/i18n.rb:131:in `store_translations' lib/redmine/i18n.rb:152:in `init_translations' lib/redmine/i18n.rb:166:in `lookup' lib/redmine/i18n.rb:30:in `l' app/helpers/application_helper.rb:1180:in `block in include_calendar_headers_tags' app/helpers/application_helper.rb:1167:in `include_calendar_headers_tags' app/helpers/application_helper.rb:1159:in `calendar_for' 以下省略 |
i18nが関係しているようですが、たまにしか起きないし、それ以外に問題箇所を特定できそうな出力は読み取れません。
いろいろ試行錯誤してみますが原因は不明。。で、国際化対応が絡んでいるという事で、ログインユーザーの言語設定を英語に変えてみた所、相変わらずInternalErrorがたまに出るものの、ログの出力内容が変わりました。
1 2 3 4 5 6 7 8 9 |
Completed 500 Internal Server Error in 2011.0ms NoMethodError (undefined method `deep_symbolize_keys' for #<String:0x007f8f44c7d8c0>): lib/redmine/i18n.rb:131:in `store_translations' lib/redmine/i18n.rb:152:in `init_translations' lib/redmine/i18n.rb:166:in `lookup' lib/redmine/i18n.rb:27:in `l' app/models/issue_query.rb:172:in `initialize_available_filters' 以下省略 |
で、エラーが出始めた時期とかを考慮すると、独自プラグインを入れた後なので、そのソースを眺めていると、en.ymlに不備を発見。直して入れてみると問題が解消したようです。