Getting Rouge::Guesser::Ambiguous in Sentry integration with PHP
I have just enabled the Sentry integration for a PHP project (GitLab 12.6.0) and when viewing an error I get the following in my developer console for the stack trace:
Rouge::Guesser::Ambiguous (Ambiguous guess: can't decide between ["php", "hack"]):
12/24/2019 9:23:14 AM
12/24/2019 9:23:14 AM lib/gitlab/error_tracking/stack_trace_highlight_decorator.rb:31:in `highlight_entry_context'
12/24/2019 9:23:14 AM lib/gitlab/error_tracking/stack_trace_highlight_decorator.rb:27:in `highlight_stack_trace_entry'
12/24/2019 9:23:14 AM lib/gitlab/error_tracking/stack_trace_highlight_decorator.rb:20:in `block in highlight_stack_trace'
12/24/2019 9:23:14 AM lib/gitlab/error_tracking/stack_trace_highlight_decorator.rb:19:in `map'
12/24/2019 9:23:14 AM lib/gitlab/error_tracking/stack_trace_highlight_decorator.rb:19:in `highlight_stack_trace'
12/24/2019 9:23:14 AM lib/gitlab/error_tracking/stack_trace_highlight_decorator.rb:12:in `decorate'
12/24/2019 9:23:14 AM app/controllers/projects/error_tracking_controller.rb:80:in `render_issue_stack_trace_json'
12/24/2019 9:23:14 AM app/controllers/projects/error_tracking_controller.rb:31:in `block (2 levels) in stack_trace'
12/24/2019 9:23:14 AM app/controllers/projects/error_tracking_controller.rb:29:in `stack_trace'
12/24/2019 9:23:14 AM ee/lib/gitlab/ip_address_state.rb:10:in `with'
12/24/2019 9:23:14 AM ee/app/controllers/ee/application_controller.rb:43:in `set_current_ip_address'
12/24/2019 9:23:14 AM lib/gitlab/session.rb:11:in `with_session'
12/24/2019 9:23:14 AM app/controllers/application_controller.rb:458:in `set_session_storage'
12/24/2019 9:23:14 AM lib/gitlab/i18n.rb:55:in `with_locale'
12/24/2019 9:23:14 AM lib/gitlab/i18n.rb:61:in `with_user_locale'
12/24/2019 9:23:14 AM app/controllers/application_controller.rb:452:in `set_locale'
12/24/2019 9:23:14 AM lib/gitlab/error_tracking.rb:34:in `with_context'
12/24/2019 9:23:14 AM app/controllers/application_controller.rb:536:in `sentry_context'
12/24/2019 9:23:14 AM lib/gitlab/middleware/rails_queue_duration.rb:27:in `call'
12/24/2019 9:23:14 AM lib/gitlab/metrics/rack_middleware.rb:17:in `block in call'
12/24/2019 9:23:14 AM lib/gitlab/metrics/transaction.rb:62:in `run'
12/24/2019 9:23:14 AM lib/gitlab/metrics/rack_middleware.rb:17:in `call'
12/24/2019 9:23:14 AM lib/gitlab/request_profiler/middleware.rb:17:in `call'
12/24/2019 9:23:14 AM ee/lib/gitlab/jira/middleware.rb:19:in `call'
12/24/2019 9:23:14 AM lib/gitlab/middleware/go.rb:20:in `call'
12/24/2019 9:23:14 AM lib/gitlab/etag_caching/middleware.rb:13:in `call'
12/24/2019 9:23:14 AM lib/gitlab/middleware/correlation_id.rb:16:in `block in call'
12/24/2019 9:23:14 AM lib/gitlab/middleware/correlation_id.rb:15:in `call'
12/24/2019 9:23:14 AM lib/gitlab/middleware/multipart.rb:117:in `call'
12/24/2019 9:23:14 AM lib/gitlab/middleware/read_only/controller.rb:48:in `call'
12/24/2019 9:23:14 AM lib/gitlab/middleware/read_only.rb:18:in `call'
12/24/2019 9:23:14 AM lib/gitlab/middleware/basic_health_check.rb:25:in `call'
12/24/2019 9:23:14 AM lib/gitlab/request_context.rb:32:in `call'
12/24/2019 9:23:14 AM config/initializers/fix_local_cache_middleware.rb:9:in `call'
12/24/2019 9:23:14 AM lib/gitlab/metrics/requests_rack_middleware.rb:49:in `call'
12/24/2019 9:23:14 AM lib/gitlab/middleware/release_env.rb:12:in `call'
I saw somewhere else in the code that the first language is taken if this is the case. Perhaps we should do the same here?