JobsController#show 500 error: `Tried to load unspecified class: Hashie::Mash` when loading CI trigger variables
This happened 3 times today: https://log.gprd.gitlab.net/app/r/s/NRAbf
[ gprd ] production> job = Ci::Build.find(27873568)
=>
#<Ci::Build:0x00007fd69c62ea38
...
[ gprd ] production> job.trigger_request.user_variables
/opt/gitlab/embedded/lib/ruby/3.1.0/psych/class_loader.rb:99:in `find': Tried to load unspecified class: Hashie::Mash (Psych::DisallowedClass)
[ gprd ] production> job.trigger_request.id
=> 494244
I guess this is an old job, and somehow it was serialized as a Hashie::Mash
?
gitlabhq_production=# select * from ci_trigger_requests where id = 494244;
id | trigger_id | variables | created_at | updated_at | commit_id
--------+------------+--------------------------------+----------------------------+----------------------------+-----------
494244 | 110329 | --- !ruby/hash:Hashie::Mash {}+| 2017-08-04 06:00:03.538057 | 2017-08-04 06:00:05.288964 | 10570950
| | | | |
(1 row)
"exception.backtrace": [
"app/models/ci/trigger_request.rb:18:in `user_variables'",
"app/presenters/ci/build_presenter.rb:22:in `trigger_variables'",
"app/serializers/base_serializer.rb:16:in `represent'",
"app/controllers/projects/jobs_controller.rb:45:in `block (2 levels) in show'",
"app/controllers/projects/jobs_controller.rb:38:in `show'",
"ee/lib/gitlab/ip_address_state.rb:10:in `with'",
"ee/app/controllers/ee/application_controller.rb:45:in `set_current_ip_address'",
"app/controllers/application_controller.rb:468:in `set_current_admin'",
"lib/gitlab/session.rb:11:in `with_session'",
"app/controllers/application_controller.rb:459:in `set_session_storage'",
"lib/gitlab/i18n.rb:114:in `with_locale'",
"lib/gitlab/i18n.rb:120:in `with_user_locale'",
"app/controllers/application_controller.rb:450:in `set_locale'",
"app/controllers/application_controller.rb:443:in `set_current_context'",
"ee/lib/omni_auth/strategies/group_saml.rb:41:in `other_phase'",
"lib/gitlab/metrics/elasticsearch_rack_middleware.rb:16:in `call'",
"lib/gitlab/middleware/memory_report.rb:13:in `call'",
"lib/gitlab/middleware/speedscope.rb:13:in `call'",
"lib/gitlab/database/load_balancing/rack_middleware.rb:23:in `call'",
"lib/gitlab/middleware/rails_queue_duration.rb:33:in `call'",
"lib/gitlab/etag_caching/middleware.rb:21:in `call'",
"lib/gitlab/metrics/rack_middleware.rb:16:in `block in call'",
"lib/gitlab/metrics/web_transaction.rb:46:in `run'",
"lib/gitlab/metrics/rack_middleware.rb:16:in `call'",
"lib/gitlab/middleware/go.rb:20:in `call'",
"lib/gitlab/middleware/query_analyzer.rb:11:in `block in call'",
"lib/gitlab/database/query_analyzer.rb:40:in `within'",
"lib/gitlab/middleware/query_analyzer.rb:11:in `call'",
"lib/gitlab/middleware/multipart.rb:173:in `call'",
"lib/gitlab/middleware/read_only/controller.rb:50:in `call'",
"lib/gitlab/middleware/read_only.rb:18:in `call'",
"lib/gitlab/middleware/unauthenticated_session_expiry.rb:18:in `call'",
"lib/gitlab/middleware/same_site_cookies.rb:27:in `call'",
"lib/gitlab/middleware/path_traversal_check.rb:35:in `call'",
"lib/gitlab/middleware/handle_malformed_strings.rb:21:in `call'",
"lib/gitlab/middleware/basic_health_check.rb:25:in `call'",
"lib/gitlab/middleware/handle_ip_spoof_attack_error.rb:25:in `call'",
"lib/gitlab/middleware/request_context.rb:15:in `call'",
"lib/gitlab/middleware/webhook_recursion_detection.rb:15:in `call'",
"config/initializers/fix_local_cache_middleware.rb:11:in `call'",
"lib/gitlab/middleware/compressed_json.rb:44:in `call'",
"lib/gitlab/middleware/rack_multipart_tempfile_factory.rb:19:in `call'",
"lib/gitlab/middleware/sidekiq_web_static.rb:20:in `call'",
"lib/gitlab/metrics/requests_rack_middleware.rb:79:in `call'",
"lib/gitlab/middleware/release_env.rb:13:in `call'"
],
Edited by Stan Hu