筆者が通っているユーザーさんでは、redmineに独自開発含めプラグインを10個くらい入れて使っているのですが、何時からかInternalErrorが出るようになり、その調査を依頼されました。
状況的にはチケットの一覧や詳細を表示する時、たまにInternalErrorとなる事があり、ただ再表示すれば普通に表示されるという何とも解りにくい状況。。
redmineのログには下記InternalError発生時の内容が出力されています。
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がたまに出るものの、ログの出力内容が変わりました。
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に不備を発見。直して入れてみると問題が解消したようです。