Skip to content

The console become frozen while debugging in Rails #1107

Open

Description

@jdonadob

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.

Activity

  1. reza-naq commented on Jul 1, 2024

    @reza-naq

    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: 'me@site.com',
                              exception_recipients: 'me@site.com'
                            }
    
      config.file_watcher = ActiveSupport::EventedFileUpdateChecker
      config.log_level = :debug
      config.sass.inline_source_maps = true
      config.sass.line_comments = false
    end
    
  2. ko1 commented on Dec 17, 2024

    @ko1
    Collaborator

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions