debug icon indicating copy to clipboard operation
debug copied to clipboard

The console become frozen while debugging in Rails

Open jdonadob opened this issue 1 year ago • 2 comments

Your environment

  • ruby -v: ruby 3.2.3 (2024-01-18 revision 52bb2ac0a6) [x64-mingw-ucrt]
  • rdbg -v: rdbg 1.9.2
  • rails -v: Rails 7.0.8.1

Describe the bug The console become frozen while debugging in Rails.

imagen

To Reproduce I set a Breakpoint in my code: 'binding.break' or 'debugger'. Next I run the Test: rails test test\system\requests_test.rb.

Expected behavior A command prompt next to the breakpoint waiting for orders.

jdonadob avatar Jun 27 '24 14:06 jdonadob

I have the same problem.

Debug works when I use thor on my app, but when I want to use it on my app (rails server) it freezes. It works also when I create a new app with the same Ruby/Rails versions.

My app is built originally some years ago and I've constantly "upgraded" it to the new Ruby & Rails versions. It seems that there's some conflict either one or more gems and the 'debug' gem or something wrong in my configs (application.rb / development.rb).

Some details:

  • Ruby version: 3.3.3
  • Rails: 7.1.3.4
  • Rdbg version: 1.9.2
  • OS: Fedora 38

I attach here my Gemfile, application.rb & development.rb.

Gemfile:

source 'https://rubygems.org'
ruby "3.3.3"
gem 'rails', '~> 7.1'
gem 'puma'
group :development, :test, :staging do
  gem "debug", ">= 1.0.0", platforms: %i[ mri mingw x64_mingw ]
end
gem 'pg'
gem 'strong_password', platforms: :mri
gem 'cancancan', '~> 3.0'
gem 'devise'
gem 'simple_form'
gem 'devise-encryptable'
gem 'activemodel-serializers-xml'
gem 'globalize', '~> 6.0'
gem 'redcarpet'
gem 'country_select'
gem 'bootstrap-sass', '~> 3'
gem 'font-awesome-rails'
gem 'sass-rails', '~> 5.0'
gem 'sassc-rails', '~> 2.1'
gem 'coffee-rails', '~> 5'
gem 'jquery-rails'
gem 'turbolinks', '~> 5.2'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.5'
gem 'redis', '~> 4.0', require: false
gem 'haml-rails'
gem 'kaminari'
gem 'bcrypt', '~> 3.1.7'
gem 'friendly_id', '~> 5.1'
gem 'exception_notification'
gem 'geocoder'
gem 'pry-rails'
gem 'listen'
gem 'dalli'
gem 'net-smtp'
gem "sprockets-rails"
gem 'psych', '~> 5.0'
gem 'bootsnap', '>= 1.4.2', require: false
group :development, :test, :staging do
  gem 'letter_opener_web', '~> 2.0'
  gem 'launchy'
  gem 'i18n-tasks', '~> 0.9'
  gem 'rack-mini-profiler', require: false
end

group :development do
  gem 'web-console'
  gem 'spring'
  gem 'spring-watcher-listen' # , '~> 2.0.0'
end

group :production, :staging do
  gem "sd_notify"
end

group :test do
  gem 'sqlite3', '~> 1.7'
  gem "rspec-rails"
  gem 'cucumber-rails', :require => false
  gem 'database_cleaner'
  gem 'capybara', ">= 2.15"
  gem 'pickle'
  gem 'capybara-screenshot'
  gem 'aruba'
  gem 'selenium-webdriver'
  gem 'webdrivers'
  gem 'factory_bot_rails'
  gem 'chronic'
  gem 'timecop'
  gem 'rails-controller-testing'
  gem 'stripe-ruby-mock', '~> 3.0.1', :require => 'stripe_mock'
  gem 'simplecov', require: false
end

gem 'sitemap_generator'
gem 'mini_magick'
gem 'carrierwave'
gem 'sidekiq', '~> 6.0'
gem 'record_tag_helper', '~> 1.0'
gem 'browser'
gem 'mini_portile2'
gem 'stripe'
gem 'sinatra', require: false
gem 'slim'
gem 'json', '>= 2.3.0'
gem 'image_processing', '~> 1.2'
# gem 'net-smtp'

My config file w/o comments. application.rb:

require_relative "boot"
require "rails/all"
require_relative '../lib/middleware/ping'

Bundler.require(*Rails.groups)

module MyApp
  class Application < Rails::Application
    # Initialize configuration defaults for originally generated Rails version.
    config.load_defaults 6.1
    config.active_support.cache_format_version = 7.0
    config.autoload_lib(ignore: %w(assets tasks))
    config.eager_load_paths << Rails.root.join("lib/**")

    config.autoload_paths += Dir["#{config.root}/lib/**/"]
    config.add_autoload_paths_to_load_path = true

    config.time_zone = 'Europe/Paris'

    config.i18n.available_locales = [:fr, :en, :it, :fa]
    config.i18n.enforce_available_locales = true
    config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '*.{rb,yml}').to_s]
    config.i18n.default_locale = :fr

    config.encoding = "utf-8"
    config.active_support.escape_html_entities_in_json = true
    config.active_record.timestamped_migrations = false
    config.active_record.schema_format = :ruby
    config.assets.enabled = true

    config.generators do |g|
      g.assets false
      g.test_framework :rpec
      g.fixture_replacement :factory_bot
    end

    config.assets.precompile += ['application.js', 'standard.css', ... ]
    config.assets.version = '1.0'
    config.assets.initialize_on_precompile = false
    config.exceptions_app = self.routes
    config.active_job.queue_name_delimiter = "_"
    config.action_mailer.deliver_later_queue_name = :mailers
    config.action_mailer.default charset: "utf-8"
    config.action_controller.per_form_csrf_tokens = true
    config.action_controller.forgery_protection_origin_check = true
    config.ssl_options = { hsts: { subdomains: true } }
    config.action_mailer.delivery_job = "ActionMailer::MailDeliveryJob"
  end
end

And my development.rb:

Rails.application.configure do
  config.annotations.register_directories('features')
  config.annotations.register_extensions('feature') { |tag| /#\s*(#{tag}):?\s*(.*)$/ }

  config.hosts += %w(example.com www.example.com)
  config.enable_reloading = true
  config.eager_load = false
  config.consider_all_requests_local = true
  config.server_timing = true

  if Rails.root.join("tmp/caching-dev.txt").exist?
    config.action_controller.perform_caching = true
    config.action_controller.enable_fragment_cache_logging = true
    config.cache_store = :file_store, 'tmp/cache'
    config.public_file_server.headers = {
      "Cache-Control" => "public, max-age=#{2.days.to_i}"
    }
  else
    config.action_controller.perform_caching = false
    config.cache_store = :null_store
  end

  config.active_storage.service = :local
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.perform_caching = false
  config.active_support.deprecation = :log
  config.active_support.disallowed_deprecation = :raise
  config.active_support.disallowed_deprecation_warnings = []
  config.active_record.migration_error = :page_load
  config.active_record.verbose_query_logs = true
  config.active_job.queue_adapter = :sidekiq
  config.action_mailer.delivery_method = :letter_opener
  config.action_mailer.perform_deliveries = true
  config.action_mailer.default_url_options = { host: "https://tripa.com" }
  config.action_dispatch.best_standards_support = :builtin
  config.assets.compress = false
  config.assets.digest = false
  config.assets.debug = false
  config.assets.quiet = true
  config.middleware.use ExceptionNotification::Rack,
                        email: {
                          sender_address: '[email protected]',
                          exception_recipients: '[email protected]'
                        }

  config.file_watcher = ActiveSupport::EventedFileUpdateChecker
  config.log_level = :debug
  config.sass.inline_source_maps = true
  config.sass.line_comments = false
end

reza-naq avatar Jul 01 '24 00:07 reza-naq

Sorry I don't enough knowledge to make repro code.

ko1 avatar Dec 17 '24 20:12 ko1