open-build-service icon indicating copy to clipboard operation
open-build-service copied to clipboard

[production][package#show] Mysql2::Error: Illegal mix of collations (utf8mb3_bin,IMPLICIT) and (utf8mb4_unicode_ci,COERCIBLE...

Open dmarcoux opened this issue 2 years ago • 2 comments

See this exception on Errbit

Mysql2::Error: Illegal mix of collations (utf8mb3_bin,IMPLICIT) and (utf8mb4_unicode_ci,COERCIBLE) for operation '='

Summary

URL

https://build.opensuse.org/package/show/home:lkocman%F0%9F%98%92use-it-infra/gnome-branding-Leap"

Where

package#show

Occured

Aug 02 2:31pm

Similar

2

Params

{
  "action" => "show",
  "controller" => "webui/package",
  "format" => "html",
  "package" => "gnome-branding-Leap",
  "project" => "home:lkocman😒use-it-infra"
}

Session

{}

Backtrace

148:  /GEM_ROOT/gems/mysql2-0.5.4/lib/mysql2/client.rb -> **_query**
148:  /GEM_ROOT/gems/mysql2-0.5.4/lib/mysql2/client.rb -> **block in query**
147:  /GEM_ROOT/gems/mysql2-0.5.4/lib/mysql2/client.rb -> **handle_interrupt**
147:  /GEM_ROOT/gems/mysql2-0.5.4/lib/mysql2/client.rb -> **query**
206:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/connection_adapters/abstract_mysql_adapter.rb -> **block (2 levels) in execute**
48:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/dependencies/interlock.rb -> **block in permit_concurrent_loads**
187:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/concurrency/share_lock.rb -> **yield_shares**
47:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/dependencies/interlock.rb -> **permit_concurrent_loads**
205:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/connection_adapters/abstract_mysql_adapter.rb -> **block in execute**
696:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/connection_adapters/abstract_adapter.rb -> **block (2 levels) in log**
26:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb -> **block (2 levels) in synchronize**
25:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb -> **handle_interrupt**
25:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb -> **block in synchronize**
21:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb -> **handle_interrupt**
21:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb -> **synchronize**
695:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/connection_adapters/abstract_adapter.rb -> **block in log**
24:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/notifications/instrumenter.rb -> **instrument**
687:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/connection_adapters/abstract_adapter.rb -> **log**
204:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/connection_adapters/abstract_mysql_adapter.rb -> **execute**
52:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/connection_adapters/mysql/database_statements.rb -> **execute**
215:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/connection_adapters/abstract_mysql_adapter.rb -> **execute_and_free**
57:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/connection_adapters/mysql/database_statements.rb -> **exec_query**
532:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/connection_adapters/abstract/database_statements.rb -> **select**
69:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/connection_adapters/abstract/database_statements.rb -> **select_all**
101:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/connection_adapters/abstract/query_cache.rb -> **block in select_all**
118:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/connection_adapters/abstract/query_cache.rb -> **block in cache_sql**
26:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb -> **block (2 levels) in synchronize**
25:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb -> **handle_interrupt**
25:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb -> **block in synchronize**
21:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb -> **handle_interrupt**
21:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb -> **synchronize**
109:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/connection_adapters/abstract/query_cache.rb -> **cache_sql**
101:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/connection_adapters/abstract/query_cache.rb -> **select_all**
12:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/connection_adapters/mysql/database_statements.rb -> **select_all**
47:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/querying.rb -> **find_by_sql**
843:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/relation.rb -> **block in exec_queries**
861:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/relation.rb -> **skip_query_cache_if_necessary**
828:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/relation.rb -> **exec_queries**
631:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/relation.rb -> **load**
249:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/relation.rb -> **records**
524:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/relation/finder_methods.rb -> **find_take**
98:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/relation/finder_methods.rb -> **take**
81:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/relation/finder_methods.rb -> **find_by**
22:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/querying.rb -> **find_by**
342:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/core.rb -> **find_by**
47:  app/controllers/webui/webui_controller.rb -> **set_project**
427:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/callbacks.rb -> **block in make_lambda**
179:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/callbacks.rb -> **block (2 levels) in halting_and_conditional**
34:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/abstract_controller/callbacks.rb -> **block (2 levels) in <module:Callbacks>**
180:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/callbacks.rb -> **block in halting_and_conditional**
512:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/callbacks.rb -> **block in invoke_before**
512:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/callbacks.rb -> **each**
512:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/callbacks.rb -> **invoke_before**
105:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/callbacks.rb -> **run_callbacks**
41:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/abstract_controller/callbacks.rb -> **process_action**
22:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_controller/metal/rescue.rb -> **process_action**
34:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_controller/metal/instrumentation.rb -> **block in process_action**
203:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/notifications.rb -> **block in instrument**
24:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/notifications/instrumenter.rb -> **instrument**
203:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/notifications.rb -> **instrument**
33:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_controller/metal/instrumentation.rb -> **process_action**
249:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_controller/metal/params_wrapper.rb -> **process_action**
27:  /GEM_ROOT/gems/activerecord-6.1.5.1/lib/active_record/railties/controller_runtime.rb -> **process_action**
165:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/abstract_controller/base.rb -> **process**
39:  /GEM_ROOT/gems/actionview-6.1.5.1/lib/action_view/rendering.rb -> **process**
190:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_controller/metal.rb -> **dispatch**
254:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_controller/metal.rb -> **dispatch**
50:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/routing/route_set.rb -> **dispatch**
33:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/routing/route_set.rb -> **serve**
19:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/routing/mapper.rb -> **block in <class:Constraints>**
49:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/routing/mapper.rb -> **serve**
50:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/journey/router.rb -> **block in serve**
32:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/journey/router.rb -> **each**
32:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/journey/router.rb -> **serve**
842:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/routing/route_set.rb -> **call**
72:  /GEM_ROOT/gems/flipper-0.25.0/lib/flipper/middleware/memoizer.rb -> **memoized_call**
37:  /GEM_ROOT/gems/flipper-0.25.0/lib/flipper/middleware/memoizer.rb -> **call**
37:  config/initializers/wrap_parameters.rb -> **call**
44:  /GEM_ROOT/gems/rack-2.2.4/lib/rack/deflater.rb -> **call**
15:  /GEM_ROOT/gems/rack-2.2.4/lib/rack/tempfile_reaper.rb -> **call**
27:  /GEM_ROOT/gems/rack-2.2.4/lib/rack/etag.rb -> **call**
27:  /GEM_ROOT/gems/rack-2.2.4/lib/rack/conditional_get.rb -> **call**
12:  /GEM_ROOT/gems/rack-2.2.4/lib/rack/head.rb -> **call**
22:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/http/permissions_policy.rb -> **call**
19:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/http/content_security_policy.rb -> **call**
266:  /GEM_ROOT/gems/rack-2.2.4/lib/rack/session/abstract/id.rb -> **context**
260:  /GEM_ROOT/gems/rack-2.2.4/lib/rack/session/abstract/id.rb -> **call**
689:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/middleware/cookies.rb -> **call**
27:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/middleware/callbacks.rb -> **block in call**
98:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/callbacks.rb -> **run_callbacks**
26:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/middleware/callbacks.rb -> **call**
18:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/middleware/actionable_exceptions.rb -> **call**
32:  /GEM_ROOT/gems/airbrake-9.4.3/lib/airbrake/rack/middleware.rb -> **call!**
21:  /GEM_ROOT/gems/airbrake-9.4.3/lib/airbrake/rack/middleware.rb -> **call**
29:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/middleware/debug_exceptions.rb -> **call**
33:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/middleware/show_exceptions.rb -> **call**
18:  /GEM_ROOT/gems/lograge-0.12.0/lib/lograge/rails_ext/rack/logger.rb -> **call_app**
26:  /GEM_ROOT/gems/railties-6.1.5.1/lib/rails/rack/logger.rb -> **block in call**
99:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/tagged_logging.rb -> **block in tagged**
37:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/tagged_logging.rb -> **tagged**
99:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/tagged_logging.rb -> **tagged**
26:  /GEM_ROOT/gems/railties-6.1.5.1/lib/rails/rack/logger.rb -> **call**
81:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/middleware/remote_ip.rb -> **call**
81:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/middleware/remote_ip.rb -> **call**
19:  /GEM_ROOT/gems/request_store-1.5.1/lib/request_store/middleware.rb -> **call**
26:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/middleware/request_id.rb -> **call**
24:  /GEM_ROOT/gems/rack-2.2.4/lib/rack/method_override.rb -> **call**
22:  /GEM_ROOT/gems/rack-2.2.4/lib/rack/runtime.rb -> **call**
29:  /GEM_ROOT/gems/activesupport-6.1.5.1/lib/active_support/cache/strategy/local_cache_middleware.rb -> **call**
14:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/middleware/executor.rb -> **call**
18:  /GEM_ROOT/gems/rack-2.2.4/lib/rack/lock.rb -> **call**
110:  /GEM_ROOT/gems/rack-2.2.4/lib/rack/sendfile.rb -> **call**
142:  /GEM_ROOT/gems/actionpack-6.1.5.1/lib/action_dispatch/middleware/host_authorization.rb -> **call**
539:  /GEM_ROOT/gems/railties-6.1.5.1/lib/rails/engine.rb -> **call**
207:  /GEM_ROOT/gems/railties-6.1.5.1/lib/rails/railtie.rb -> **public_send**
207:  /GEM_ROOT/gems/railties-6.1.5.1/lib/rails/railtie.rb -> **method_missing**
74:  /GEM_ROOT/gems/rack-2.2.4/lib/rack/urlmap.rb -> **block in call**
58:  /GEM_ROOT/gems/rack-2.2.4/lib/rack/urlmap.rb -> **each**
58:  /GEM_ROOT/gems/rack-2.2.4/lib/rack/urlmap.rb -> **call**
107:  /usr/lib64/ruby/gems/3.1.0/gems/passenger-6.0.14/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb -> **process_request**
149:  /usr/lib64/ruby/gems/3.1.0/gems/passenger-6.0.14/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb -> **accept_and_process_next_request**
110:  /usr/lib64/ruby/gems/3.1.0/gems/passenger-6.0.14/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb -> **main_loop**
419:  /usr/lib64/ruby/gems/3.1.0/gems/passenger-6.0.14/src/ruby_supportlib/phusion_passenger/request_handler.rb -> **block (3 levels) in start_threads**
113:  /usr/lib64/ruby/gems/3.1.0/gems/passenger-6.0.14/src/ruby_supportlib/phusion_passenger/utils.rb -> **block in create_thread_and_abort_on_exception**

Environment

Key Value
program_name Passenger RubyApp: /srv/www/obs/api (production)
HTTP_USER_AGENT Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36

dmarcoux avatar Aug 03 '22 12:08 dmarcoux

It seems like this was caused by typing in an emoji in the URL. The project name is wrong due to this. We shouldn't crash when this happens, but instead render a 404.

dmarcoux avatar Aug 03 '22 12:08 dmarcoux

To get rid of such errors once and for all, we should migrate the complete database to utf8mb4. Right now, we still have some tables and columns using utf8mb3. This article explains how we could do it: https://railsmachine.com/articles/2017/05/19/converting-a-rails-database-to-utf8mb4.html

dmarcoux avatar Aug 04 '22 10:08 dmarcoux

Duplicate of #7536. Closing...

eduardoj avatar Oct 31 '22 12:10 eduardoj