pat / thinking-sphinx

Sphinx/Manticore plugin for ActiveRecord/Rails

Home Page:http://freelancing-gods.com/thinking-sphinx

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Feature test with Capybara: Error connecting to Sphinx via the MySQL protocol.

gaetan-yg opened this issue · comments

Hi @pat
We are running into MySQL connection issue when running feature test relying on sphinx. It seems to happen if there is more than one test requiring sphinx, ie if we run each test one by one manually we don't get the error.
My dev environment is setup with docker but we have the same issue in our CI environment.

In the example below, the first test will pass and the second will fail with an Error connecting to Sphinx.

describe 'test something', sphinx: true do
  it 'does something' do
    # test loading a page requiring sphinx
  end
  
  it 'does something 2' do
    # test loading a page requiring sphinx
  end
end

It looks like ThinkingSphinx isn't ready yet for the second test, I tried adding a sleep after sleep ThinkingSphinx::Test.start but no luck.
I also added ThinkingSphinx::Test.running? but it tells me that ThinkingSphinx is still running at the start of the test, even when it's failing.

def self.running?
  config.controller.running?
end

Any pointers? I am not sure what else I can check.

Gems version

gem 'flying-sphinx',   '~> 1.3'
gem 'mysql2',          '~> 0.5.3'
gem 'thinking-sphinx', '~> 3.4'

sphinx config

development: &common
  morphology: stem_en
test:
  <<: *common
  mysql41: 9307
production:
  <<: *common
  version: 2.2.11

spec/support/sphinx.rb

RSpec.configure do |config|
  config.before(:each) do |example|
    if example.metadata[:sphinx]
      ThinkingSphinx::Test.init
      ThinkingSphinx::Test.start index: false
    end

    ThinkingSphinx::Configuration.instance.settings['real_time_callbacks'] =
      !!example.metadata[:sphinx]
  end

  config.after(:each) do |example|
    if example.metadata[:sphinx]
      ThinkingSphinx::Test.stop
      ThinkingSphinx::Test.clear
    end
  end
end

stacktrace

ActionView::Template::Error:
       Error connecting to Sphinx via the MySQL protocol. Can't connect to MySQL server on '127.0.0.1' (115)
     # /bundle/gems/mysql2-0.5.3/lib/mysql2/client.rb:90:in `connect'
     # /bundle/gems/mysql2-0.5.3/lib/mysql2/client.rb:90:in `initialize'
     # /bundle/gems/thinking-sphinx-3.4.2/lib/thinking_sphinx/connection/mri.rb:15:in `new'
     # /bundle/gems/thinking-sphinx-3.4.2/lib/thinking_sphinx/connection/mri.rb:15:in `client'
     # /bundle/gems/thinking-sphinx-3.4.2/lib/thinking_sphinx/connection/client.rb:7:in `close!'
     # /bundle/gems/thinking-sphinx-3.4.2/lib/thinking_sphinx/connection.rb:29:in `block in pool'
     # /bundle/gems/innertube-1.1.0/lib/innertube.rb:88:in `delete_element'
     # /bundle/gems/innertube-1.1.0/lib/innertube.rb:140:in `rescue in take'
     # /bundle/gems/innertube-1.1.0/lib/innertube.rb:139:in `take'
     # /bundle/gems/thinking-sphinx-3.4.2/lib/thinking_sphinx/connection.rb:37:in `take'
     # /bundle/gems/thinking-sphinx-3.4.2/lib/thinking_sphinx/search/batch_inquirer.rb:16:in `results'
     # /bundle/gems/thinking-sphinx-3.4.2/lib/thinking_sphinx/middlewares/inquirer.rb:9:in `block in call'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `block in instrument'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `instrument'
     # /bundle/gems/thinking-sphinx-3.4.2/lib/thinking_sphinx/logger.rb:3:in `log'
     # /bundle/gems/thinking-sphinx-3.4.2/lib/thinking_sphinx/middlewares/inquirer.rb:8:in `call'
     # /bundle/gems/thinking-sphinx-3.4.2/lib/thinking_sphinx/middlewares/geographer.rb:11:in `call'
     # /bundle/gems/thinking-sphinx-3.4.2/lib/thinking_sphinx/middlewares/sphinxql.rb:14:in `call'
     # /bundle/gems/thinking-sphinx-3.4.2/lib/thinking_sphinx/middlewares/attribute_typer.rb:12:in `call'
     # /bundle/gems/thinking-sphinx-3.4.2/lib/thinking_sphinx/middlewares/valid_options.rb:7:in `call'
     # /bundle/gems/middleware-0.1.0/lib/middleware/runner.rb:31:in `call'
     # /bundle/gems/middleware-0.1.0/lib/middleware/builder.rb:102:in `call'
     # /bundle/gems/thinking-sphinx-3.4.2/lib/thinking_sphinx/search.rb:92:in `populate'
     # /bundle/gems/thinking-sphinx-3.4.2/lib/thinking_sphinx/search.rb:71:in `meta'
     # /bundle/gems/thinking-sphinx-3.4.2/lib/thinking_sphinx/masks/pagination_mask.rb:43:in `total_entries'
     # /bundle/gems/thinking-sphinx-3.4.2/lib/thinking_sphinx/search.rb:139:in `block in method_missing'
     # /bundle/gems/thinking-sphinx-3.4.2/lib/thinking_sphinx/search.rb:138:in `each'
     # /bundle/gems/thinking-sphinx-3.4.2/lib/thinking_sphinx/search.rb:138:in `method_missing'
     # /bundle/gems/thinking-sphinx-3.4.2/lib/thinking_sphinx/active_record/base.rb:24:in `search_count'
     # ./lib/spree/sphinx/search.rb:36:in `retrieve_count'
     # /bundle/gems/scout_apm-2.6.10/lib/scout_apm/tracer.rb:77:in `block in retrieve_count_with_scout_instrument'
     # /bundle/gems/scout_apm-2.6.10/lib/scout_apm/tracer.rb:34:in `instrument'
     # /bundle/gems/scout_apm-2.6.10/lib/scout_apm/tracer.rb:73:in `retrieve_count_with_scout_instrument'
     # ./app/factories/search_factory.rb:86:in `searcher_call'
     # ./app/factories/search_factory.rb:36:in `total_products'
     # ./app/presenters/api/search_presenter.rb:10:in `total_products'
     # ./app/presenters/api/search_presenter.rb:17:in `total_pages'
     # ./app/views/api/shared/_products.json.jbuilder:5:in `_60832711be3f6dfe1def535d1fb47a1c'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/template.rb:159:in `block in render'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:166:in `instrument'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/template.rb:354:in `instrument'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/template.rb:157:in `render'
     # /bundle/gems/deface-1.3.2/lib/deface/action_view_extensions.rb:41:in `render'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/renderer/partial_renderer.rb:343:in `render_partial'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/renderer/partial_renderer.rb:311:in `block in render'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/renderer/abstract_renderer.rb:42:in `block in instrument'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `block in instrument'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `instrument'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/renderer/abstract_renderer.rb:41:in `instrument'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/renderer/partial_renderer.rb:310:in `render'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/renderer/renderer.rb:47:in `render_partial'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/renderer/renderer.rb:21:in `render'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/helpers/rendering_helper.rb:32:in `render'
     # /bundle/gems/haml-5.1.2/lib/haml/helpers/action_view_mods.rb:15:in `render'
     # /bundle/gems/jbuilder-2.11.2/lib/jbuilder/jbuilder_template.rb:128:in `_render_partial'
     # /bundle/gems/jbuilder-2.11.2/lib/jbuilder/jbuilder_template.rb:122:in `_render_partial_with_options'
     # /bundle/gems/jbuilder-2.11.2/lib/jbuilder/jbuilder_template.rb:215:in `_render_explicit_partial'
     # /bundle/gems/jbuilder-2.11.2/lib/jbuilder/jbuilder_template.rb:22:in `partial!'
     # ./app/views/api/searches/show.json.jbuilder:4:in `block in _4f8feb8faf510bb7a26268538015000c'
     # /bundle/gems/jbuilder-2.11.2/lib/jbuilder/jbuilder_template.rb:42:in `cache!'
     # ./app/views/api/searches/show.json.jbuilder:3:in `_4f8feb8faf510bb7a26268538015000c'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/template.rb:159:in `block in render'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:166:in `instrument'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/template.rb:354:in `instrument'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/template.rb:157:in `render'
     # /bundle/gems/deface-1.3.2/lib/deface/action_view_extensions.rb:41:in `render'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/renderer/template_renderer.rb:54:in `block (2 levels) in render_template'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/renderer/abstract_renderer.rb:42:in `block in instrument'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `block in instrument'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `instrument'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/renderer/abstract_renderer.rb:41:in `instrument'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/renderer/template_renderer.rb:53:in `block in render_template'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/renderer/template_renderer.rb:61:in `render_with_layout'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/renderer/template_renderer.rb:52:in `render_template'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/renderer/template_renderer.rb:14:in `render'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/renderer/renderer.rb:42:in `render_template'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/renderer/renderer.rb:23:in `render'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/rendering.rb:104:in `_render_template'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_controller/metal/streaming.rb:217:in `_render_template'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/rendering.rb:83:in `render_to_body'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_controller/metal/rendering.rb:52:in `render_to_body'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_controller/metal/renderers.rb:142:in `render_to_body'
     # /bundle/gems/actionpack-5.0.7.2/lib/abstract_controller/rendering.rb:26:in `render'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_controller/metal/rendering.rb:36:in `render'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:44:in `block (2 levels) in render'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/core_ext/benchmark.rb:12:in `block in ms'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/core_ext/benchmark.rb:12:in `ms'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:44:in `block in render'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:87:in `cleanup_view_runtime'
     # /bundle/gems/activerecord-5.0.7.2/lib/active_record/railties/controller_runtime.rb:25:in `cleanup_view_runtime'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:43:in `render'
     # /bundle/gems/meta-tags-2.14.0/lib/meta_tags/controller_helper.rb:22:in `render'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_controller/metal/implicit_render.rb:36:in `default_render'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_controller/metal/basic_implicit_render.rb:4:in `block in send_action'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_controller/metal/basic_implicit_render.rb:4:in `tap'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_controller/metal/basic_implicit_render.rb:4:in `send_action'
     # /bundle/gems/actionpack-5.0.7.2/lib/abstract_controller/base.rb:188:in `process_action'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_controller/metal/rendering.rb:30:in `process_action'
     # /bundle/gems/actionpack-5.0.7.2/lib/abstract_controller/callbacks.rb:20:in `block in process_action'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:126:in `call'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:506:in `block (2 levels) in compile'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:455:in `call'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:448:in `block (2 levels) in around'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:286:in `block (2 levels) in halting'
     # /bundle/gems/audited-4.10.0/lib/audited/sweeper.rb:14:in `around'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:405:in `public_send'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:405:in `block in make_lambda'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:285:in `block in halting'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:447:in `block in around'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:455:in `call'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:448:in `block (2 levels) in around'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:286:in `block (2 levels) in halting'
     # /bundle/gems/audited-4.10.0/lib/audited/sweeper.rb:14:in `around'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:405:in `public_send'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:405:in `block in make_lambda'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:285:in `block in halting'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:447:in `block in around'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:455:in `call'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:101:in `__run_callbacks__'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:750:in `_run_process_action_callbacks'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:90:in `run_callbacks'
     # /bundle/gems/actionpack-5.0.7.2/lib/abstract_controller/callbacks.rb:19:in `process_action'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_controller/metal/rescue.rb:20:in `process_action'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `block in instrument'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `instrument'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_controller/metal/params_wrapper.rb:248:in `process_action'
     # /bundle/gems/activerecord-5.0.7.2/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
     # /bundle/gems/actionpack-5.0.7.2/lib/abstract_controller/base.rb:126:in `process'
     # /bundle/gems/actionview-5.0.7.2/lib/action_view/rendering.rb:30:in `process'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_controller/metal.rb:190:in `dispatch'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_controller/metal.rb:262:in `dispatch'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:32:in `serve'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:39:in `block in serve'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `each'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `serve'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:727:in `call'
     # /bundle/gems/omniauth-2.0.4/lib/omniauth/strategy.rb:202:in `call!'
     # /bundle/gems/omniauth-2.0.4/lib/omniauth/strategy.rb:169:in `call'
     # /bundle/gems/omniauth-2.0.4/lib/omniauth/builder.rb:45:in `call'
     # /bundle/gems/scout_apm-2.6.10/lib/scout_apm/middleware.rb:17:in `call'
     # /bundle/gems/warden-1.2.9/lib/warden/manager.rb:36:in `block in call'
     # /bundle/gems/warden-1.2.9/lib/warden/manager.rb:34:in `catch'
     # /bundle/gems/warden-1.2.9/lib/warden/manager.rb:34:in `call'
     # /bundle/gems/rack-2.2.3.1/lib/rack/etag.rb:27:in `call'
     # /bundle/gems/rack-2.2.3.1/lib/rack/conditional_get.rb:27:in `call'
     # /bundle/gems/rack-2.2.3.1/lib/rack/head.rb:12:in `call'
     # /bundle/gems/rack-2.2.3.1/lib/rack/session/abstract/id.rb:266:in `context'
     # /bundle/gems/rack-2.2.3.1/lib/rack/session/abstract/id.rb:260:in `call'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/cookies.rb:613:in `call'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/callbacks.rb:38:in `block in call'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:97:in `__run_callbacks__'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:750:in `_run_call_callbacks'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:90:in `run_callbacks'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/callbacks.rb:36:in `call'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
     # /bundle/gems/bugsnag-5.5.0/lib/bugsnag/rack.rb:42:in `call'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/debug_exceptions.rb:49:in `call'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
     # /bundle/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:36:in `call_app'
     # /bundle/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:24:in `block in call'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:69:in `block in tagged'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:26:in `tagged'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:69:in `tagged'
     # /bundle/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:24:in `call'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/request_id.rb:24:in `call'
     # /bundle/gems/rack-2.2.3.1/lib/rack/method_override.rb:24:in `call'
     # /bundle/gems/rack-2.2.3.1/lib/rack/runtime.rb:22:in `call'
     # /bundle/gems/rails_autoscale_agent-0.10.2/lib/rails_autoscale_agent/middleware.rb:27:in `call'
     # /bundle/gems/activesupport-5.0.7.2/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/executor.rb:12:in `call'
     # /bundle/gems/rack-2.2.3.1/lib/rack/lock.rb:18:in `call'
     # /bundle/gems/rack-2.2.3.1/lib/rack/deflater.rb:44:in `call'
     # /bundle/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/static.rb:136:in `call'
     # /bundle/gems/rack-2.2.3.1/lib/rack/sendfile.rb:110:in `call'
     # /bundle/gems/rack-cors-1.1.1/lib/rack/cors.rb:100:in `call'
     # /bundle/gems/railties-5.0.7.2/lib/rails/engine.rb:522:in `call'
     # /bundle/gems/rack-2.2.3.1/lib/rack/urlmap.rb:74:in `block in call'
     # /bundle/gems/rack-2.2.3.1/lib/rack/urlmap.rb:58:in `each'
     # /bundle/gems/rack-2.2.3.1/lib/rack/urlmap.rb:58:in `call'
     # /bundle/gems/capybara-3.35.3/lib/capybara/server/middleware.rb:60:in `call'
     # /bundle/gems/puma-5.6.4/lib/puma/configuration.rb:252:in `call'
     # /bundle/gems/puma-5.6.4/lib/puma/request.rb:77:in `block in handle_request'
     # /bundle/gems/puma-5.6.4/lib/puma/thread_pool.rb:340:in `with_force_shutdown'
     # /bundle/gems/puma-5.6.4/lib/puma/request.rb:76:in `handle_request'
     # /bundle/gems/puma-5.6.4/lib/puma/server.rb:441:in `process_client'
     # /bundle/gems/puma-5.6.4/lib/puma/thread_pool.rb:147:in `block in spawn_thread'
     # ------------------
     # --- Caused by: ---
     # Mysql2::Error::ConnectionError:
     #   Lost connection to MySQL server at 'handshake: reading initial communication packet', system error: 104
     #   /bundle/gems/mysql2-0.5.3/lib/mysql2/client.rb:90:in `connect'

I'm afraid I don't have any inspiration on what might be causing this - your setup is very similar to a project of my own, and the tests for that run reliably on GitHub Actions. 🤔

I do see that you're running old versions of TS and FS - upgrading is certainly recommended, but I would be surprised if that resolves this specific problem.

I guess it might be worth diving into your local copies of the TS and Riddle gems to try and catch the shell output from the stop/start calls to see if they hold any clues?

Thanks Pat, I'll have dig further when I get a chance.

Hi @gaetan-yg - I'm going to close this issue as it's been a few months without any change here. That said: if you find it's still a problem and have any further questions/fixes, please do comment, I'll be happy to re-open the issue.