Skip to content

tailwindcss:watch terminates with exception #318

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
ShadowCrafter011 opened this issue Jan 11, 2024 · 10 comments · Fixed by #336
Closed

tailwindcss:watch terminates with exception #318

ShadowCrafter011 opened this issue Jan 11, 2024 · 10 comments · Fixed by #336
Labels
needs-more-info Further information is needed to unblock

Comments

@ShadowCrafter011
Copy link

ShadowCrafter011 commented Jan 11, 2024

I installed tailwindcss-rails into one of my existing projects and am currently trying to switch everything over. I currently have the issue that everytime I press ctrl + c to stop the webserver tailwindcss:watch throws an exception. I run the command with the --trace argument so I'm not sure if the error I receive is intended stop behaviour.

The trace is:

^C15:54:13 system | SIGINT received, starting shutdown
15:54:13 css.1  | bin/rails aborted!
15:54:13 css.1  | Interrupt:
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/tailwindcss-rails-2.3.0-x86_64-linux/lib/tasks/build.rake:17:in `system'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/tailwindcss-rails-2.3.0-x86_64-linux/lib/tasks/build.rake:17:in `block (2 levels) in <main>'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rake-13.1.0/lib/rake/task.rb:281:in `block in execute'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rake-13.1.0/lib/rake/task.rb:281:in `each'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rake-13.1.0/lib/rake/task.rb:281:in `execute'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rake-13.1.0/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rake-13.1.0/lib/rake/task.rb:199:in `synchronize'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rake-13.1.0/lib/rake/task.rb:199:in `invoke_with_call_chain'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rake-13.1.0/lib/rake/task.rb:188:in `invoke'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rake-13.1.0/lib/rake/application.rb:182:in `invoke_task'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rake-13.1.0/lib/rake/application.rb:138:in `block (2 levels) in top_level'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rake-13.1.0/lib/rake/application.rb:138:in `each'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rake-13.1.0/lib/rake/application.rb:138:in `block in top_level'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rake-13.1.0/lib/rake/application.rb:147:in `run_with_threads'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rake-13.1.0/lib/rake/application.rb:132:in `top_level'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/railties-7.1.2/lib/rails/commands/rake/rake_command.rb:27:in `block (2 levels) in perform'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rake-13.1.0/lib/rake/application.rb:208:in `standard_exception_handling'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/railties-7.1.2/lib/rails/commands/rake/rake_command.rb:27:in `block in perform'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/railties-7.1.2/lib/rails/commands/rake/rake_command.rb:44:in `block in with_rake'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rake-13.1.0/lib/rake/rake_module.rb:59:in `with_application'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/railties-7.1.2/lib/rails/commands/rake/rake_command.rb:41:in `with_rake'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/railties-7.1.2/lib/rails/commands/rake/rake_command.rb:20:in `perform'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/railties-7.1.2/lib/rails/command.rb:156:in `invoke_rake'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/railties-7.1.2/lib/rails/command.rb:73:in `block in invoke'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/railties-7.1.2/lib/rails/command.rb:149:in `with_argv'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/railties-7.1.2/lib/rails/command.rb:69:in `invoke'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/railties-7.1.2/lib/rails/commands.rb:18:in `<main>'
15:54:13 css.1  | <internal:/home/lukas/.rbenv/versions/3.1.2/lib/ruby/site_ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:38:in `require'
15:54:13 css.1  | <internal:/home/lukas/.rbenv/versions/3.1.2/lib/ruby/site_ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:38:in `require'
15:54:13 css.1  | /home/lukas/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bootsnap-1.17.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
15:54:13 css.1  | bin/rails:4:in `<main>'
15:54:13 css.1  | Tasks: TOP => tailwindcss:watch
15:54:13 web.1  | - Gracefully stopping, waiting for requests to finish
15:54:13 web.1  | === puma shutdown: 2024-01-11 15:54:13 +0000 ===
15:54:13 web.1  | - Goodbye!
15:54:13 web.1  | Exiting
15:54:13 system | sending SIGTERM to all processes
15:54:13 web.1  | exited with code 0
15:54:13 css.1  | exited with code 1

My Procfile.dev:

web: bin/rails server -b 0.0.0.0 -p 3001
css: bin/rails tailwindcss:watch

bin/dev:

#!/usr/bin/env sh

if ! gem list foreman -i --silent; then
  echo "Installing foreman..."
  gem install foreman
fi

# Default to port 3000 if not specified
export PORT="${PORT:-3000}"

# Let the debug gem allow remote connections,
# but avoid loading until `debugger` is called
export RUBY_DEBUG_OPEN="true"
export RUBY_DEBUG_LAZY="true"

exec foreman start -f Procfile.dev "$@"

@kesleymartins

This comment was marked as off-topic.

@flavorjones
Copy link
Member

flavorjones commented Feb 7, 2024

@ShadowCrafter011 I can't reproduce this on my machine, can you help me by providing some more information about your system?

I'm running:

  • ruby -v: ruby 3.2.3 (2024-01-18 revision 52bb2ac0a6) [x86_64-linux]
  • rails -v: Rails 7.1.3
  • tailwindcss-rails (2.3.0)
  • foreman (0.87.2)
  • my Procfile.dev and bin/dev are identical to yours

Is anything obviously different for you?

@flavorjones
Copy link
Member

I also can't reproduce this with the same setup on MacOS ruby 3.2.3 (2024-01-18 revision 52bb2ac0a6) [arm64-darwin23]

@flavorjones flavorjones added the needs-more-info Further information is needed to unblock label Feb 7, 2024
@kesleymartins

This comment was marked as off-topic.

@davidcelis
Copy link
Contributor

I can reproduce this as well, and it's been like this for my app ever since I first generated it about a year and a half ago 😅

ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23]
Rails 7.1.2
tailwindcss-rails 2.3.0

My Procfile.dev:

web: bin/rails server -p 3000
worker: bin/sidekiq -C config/sidekiq.yml
css: bin/rails tailwindcss:watch

My bin/dev:

#!/usr/bin/env bash

if ! command -v foreman &> /dev/null
then
  echo "Installing foreman..."
  gem install foreman
fi

foreman start -f Procfile.dev

@davidcelis
Copy link
Contributor

In fact, I can reproduce this with a fresh Rails application without having to make any changes to it:

$ rails new tailwind_test -c tailwind
# snip
$ cd tailwind_test
$ bin/dev
09:51:56 web.1  | started with pid 79504
09:51:56 css.1  | started with pid 79505
09:51:56 web.1  | => Booting Puma
09:51:56 web.1  | => Rails 7.1.3.2 application starting in development 
09:51:56 web.1  | => Run `bin/rails server --help` for more startup options
09:51:56 web.1  | Puma starting in single mode...
09:51:56 web.1  | * Puma version: 6.4.2 (ruby 3.3.0-p0) ("The Eagle of Durango")
09:51:56 web.1  | *  Min threads: 5
09:51:56 web.1  | *  Max threads: 5
09:51:56 web.1  | *  Environment: development
09:51:56 web.1  | *          PID: 79504
09:51:56 web.1  | * Listening on http://127.0.0.1:3000
09:51:56 web.1  | * Listening on http://[::1]:3000
09:51:57 web.1  | Use Ctrl-C to stop
09:51:57 css.1  | 
09:51:57 css.1  | Rebuilding...
09:51:57 css.1  | 
09:51:57 css.1  | Done in 196ms.
^C09:51:59 system | SIGINT received, starting shutdown
09:51:59 css.1  | bin/rails aborted!
09:51:59 web.1  | - Gracefully stopping, waiting for requests to finish
09:51:59 css.1  | Interrupt: Interrupt
09:51:59 web.1  | === puma shutdown: 2024-02-23 09:51:59 -0800 ===
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/tailwindcss-rails-2.3.0-arm64-darwin/lib/tasks/build.rake:17:in `system'
09:51:59 web.1  | - Goodbye!
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/tailwindcss-rails-2.3.0-arm64-darwin/lib/tasks/build.rake:17:in `block (2 levels) in <main>'
09:51:59 web.1  | Exiting
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/rake-13.1.0/lib/rake/task.rb:281:in `block in execute'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/rake-13.1.0/lib/rake/task.rb:281:in `each'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/rake-13.1.0/lib/rake/task.rb:281:in `execute'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/rake-13.1.0/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/rake-13.1.0/lib/rake/task.rb:199:in `synchronize'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/rake-13.1.0/lib/rake/task.rb:199:in `invoke_with_call_chain'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/rake-13.1.0/lib/rake/task.rb:188:in `invoke'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:182:in `invoke_task'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:138:in `block (2 levels) in top_level'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:138:in `each'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:138:in `block in top_level'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:147:in `run_with_threads'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:132:in `top_level'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/railties-7.1.3.2/lib/rails/commands/rake/rake_command.rb:27:in `block (2 levels) in perform'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:208:in `standard_exception_handling'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/railties-7.1.3.2/lib/rails/commands/rake/rake_command.rb:27:in `block in perform'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/railties-7.1.3.2/lib/rails/commands/rake/rake_command.rb:44:in `block in with_rake'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/rake-13.1.0/lib/rake/rake_module.rb:59:in `with_application'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/railties-7.1.3.2/lib/rails/commands/rake/rake_command.rb:41:in `with_rake'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/railties-7.1.3.2/lib/rails/commands/rake/rake_command.rb:20:in `perform'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/railties-7.1.3.2/lib/rails/command.rb:156:in `invoke_rake'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/railties-7.1.3.2/lib/rails/command.rb:73:in `block in invoke'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/railties-7.1.3.2/lib/rails/command.rb:149:in `with_argv'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/railties-7.1.3.2/lib/rails/command.rb:69:in `invoke'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/railties-7.1.3.2/lib/rails/commands.rb:18:in `<main>'
09:51:59 css.1  | /Users/davidcelis/Developer/tailwind_test/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
09:51:59 css.1  | Tasks: TOP => tailwindcss:watch
09:51:59 css.1  | (See full trace by running task with --trace)
09:52:00 system | sending SIGTERM to all processes
09:52:00 web.1  | exited with code 0
09:52:00 css.1  | exited with code 1

@flavorjones
Copy link
Member

flavorjones commented Feb 23, 2024

@davidcelis I know you're trying to help, so thank you. But without new information I can't reproduce this on my system, with either Ruby 3.2.3 or Ruby 3.3.0.

Here's `bundle env` from my system where I did the exact same thing as you.

Environment

Bundler       2.5.3
  Platforms   ruby, arm64-darwin-23
Ruby          3.3.0p0 (2023-12-25 revision 5124f9ac7513eb590c37717337c430cb93caa151) [arm64-darwin-23]
  Full Path   /Users/flavorjones/.rubies/3.3.0/bin/ruby
  Config Dir  /Users/flavorjones/.rubies/3.3.0/etc
RubyGems      3.5.3
  Gem Home    /Users/flavorjones/.gem/ruby/3.3.0
  Gem Path    /Users/flavorjones/.gem/ruby/3.3.0:/Users/flavorjones/.rubies/3.3.0/lib/ruby/gems/3.3.0
  User Home   /Users/flavorjones
  User Path   /Users/flavorjones/.gem/ruby/3.3.0
  Bin Dir     /Users/flavorjones/.gem/ruby/3.3.0/bin
Tools         
  Git         2.39.2
  RVM         not installed
  rbenv       not installed
  chruby      not installed

Bundler Build Metadata

Built At          2024-02-23
Git SHA           unknown
Released Version  false

Bundler settings

pkgs.shopify.io
  Set for the current user (/Users/flavorjones/.bundle/config): "token:[REDACTED]"
set
  Set for the current user (/Users/flavorjones/.bundle/config): "jobs 2"

Gemfile

Gemfile

source "https://rubygems.org"

ruby "3.3.0"

# Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main"
gem "rails", "~> 7.1.3", ">= 7.1.3.2"

# The original asset pipeline for Rails [https://github.com/rails/sprockets-rails]
gem "sprockets-rails"

# Use sqlite3 as the database for Active Record
gem "sqlite3", "~> 1.4"

# Use the Puma web server [https://github.com/puma/puma]
gem "puma", ">= 5.0"

# Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails]
gem "importmap-rails"

# Hotwire's SPA-like page accelerator [https://turbo.hotwired.dev]
gem "turbo-rails"

# Hotwire's modest JavaScript framework [https://stimulus.hotwired.dev]
gem "stimulus-rails"

# Use Tailwind CSS [https://github.com/rails/tailwindcss-rails]
gem "tailwindcss-rails"

# Build JSON APIs with ease [https://github.com/rails/jbuilder]
gem "jbuilder"

# Use Redis adapter to run Action Cable in production
gem "redis", ">= 4.0.1"

# Use Kredis to get higher-level data types in Redis [https://github.com/rails/kredis]
# gem "kredis"

# Use Active Model has_secure_password [https://guides.rubyonrails.org/active_model_basics.html#securepassword]
# gem "bcrypt", "~> 3.1.7"

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem "tzinfo-data", platforms: %i[ windows jruby ]

# Reduces boot times through caching; required in config/boot.rb
gem "bootsnap", require: false

# Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images]
# gem "image_processing", "~> 1.2"

group :development, :test do
  # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem
  gem "debug", platforms: %i[ mri windows ]
end

group :development do
  # Use console on exceptions pages [https://github.com/rails/web-console]
  gem "web-console"

  # Add speed badges [https://github.com/MiniProfiler/rack-mini-profiler]
  # gem "rack-mini-profiler"

  # Speed up commands on slow machines / big apps [https://github.com/rails/spring]
  # gem "spring"
end

group :test do
  # Use system testing [https://guides.rubyonrails.org/testing.html#system-testing]
  gem "capybara"
  gem "selenium-webdriver"
end

Gemfile.lock

GEM
  remote: https://rubygems.org/
  specs:
    actioncable (7.1.3.2)
      actionpack (= 7.1.3.2)
      activesupport (= 7.1.3.2)
      nio4r (~> 2.0)
      websocket-driver (>= 0.6.1)
      zeitwerk (~> 2.6)
    actionmailbox (7.1.3.2)
      actionpack (= 7.1.3.2)
      activejob (= 7.1.3.2)
      activerecord (= 7.1.3.2)
      activestorage (= 7.1.3.2)
      activesupport (= 7.1.3.2)
      mail (>= 2.7.1)
      net-imap
      net-pop
      net-smtp
    actionmailer (7.1.3.2)
      actionpack (= 7.1.3.2)
      actionview (= 7.1.3.2)
      activejob (= 7.1.3.2)
      activesupport (= 7.1.3.2)
      mail (~> 2.5, >= 2.5.4)
      net-imap
      net-pop
      net-smtp
      rails-dom-testing (~> 2.2)
    actionpack (7.1.3.2)
      actionview (= 7.1.3.2)
      activesupport (= 7.1.3.2)
      nokogiri (>= 1.8.5)
      racc
      rack (>= 2.2.4)
      rack-session (>= 1.0.1)
      rack-test (>= 0.6.3)
      rails-dom-testing (~> 2.2)
      rails-html-sanitizer (~> 1.6)
    actiontext (7.1.3.2)
      actionpack (= 7.1.3.2)
      activerecord (= 7.1.3.2)
      activestorage (= 7.1.3.2)
      activesupport (= 7.1.3.2)
      globalid (>= 0.6.0)
      nokogiri (>= 1.8.5)
    actionview (7.1.3.2)
      activesupport (= 7.1.3.2)
      builder (~> 3.1)
      erubi (~> 1.11)
      rails-dom-testing (~> 2.2)
      rails-html-sanitizer (~> 1.6)
    activejob (7.1.3.2)
      activesupport (= 7.1.3.2)
      globalid (>= 0.3.6)
    activemodel (7.1.3.2)
      activesupport (= 7.1.3.2)
    activerecord (7.1.3.2)
      activemodel (= 7.1.3.2)
      activesupport (= 7.1.3.2)
      timeout (>= 0.4.0)
    activestorage (7.1.3.2)
      actionpack (= 7.1.3.2)
      activejob (= 7.1.3.2)
      activerecord (= 7.1.3.2)
      activesupport (= 7.1.3.2)
      marcel (~> 1.0)
    activesupport (7.1.3.2)
      base64
      bigdecimal
      concurrent-ruby (~> 1.0, >= 1.0.2)
      connection_pool (>= 2.2.5)
      drb
      i18n (>= 1.6, < 2)
      minitest (>= 5.1)
      mutex_m
      tzinfo (~> 2.0)
    addressable (2.8.6)
      public_suffix (>= 2.0.2, < 6.0)
    base64 (0.2.0)
    bigdecimal (3.1.6)
    bindex (0.8.1)
    bootsnap (1.18.3)
      msgpack (~> 1.2)
    builder (3.2.4)
    capybara (3.40.0)
      addressable
      matrix
      mini_mime (>= 0.1.3)
      nokogiri (~> 1.11)
      rack (>= 1.6.0)
      rack-test (>= 0.6.3)
      regexp_parser (>= 1.5, < 3.0)
      xpath (~> 3.2)
    concurrent-ruby (1.2.3)
    connection_pool (2.4.1)
    crass (1.0.6)
    date (3.3.4)
    debug (1.9.1)
      irb (~> 1.10)
      reline (>= 0.3.8)
    drb (2.2.0)
      ruby2_keywords
    erubi (1.12.0)
    globalid (1.2.1)
      activesupport (>= 6.1)
    i18n (1.14.1)
      concurrent-ruby (~> 1.0)
    importmap-rails (2.0.1)
      actionpack (>= 6.0.0)
      activesupport (>= 6.0.0)
      railties (>= 6.0.0)
    io-console (0.7.2)
    irb (1.11.2)
      rdoc
      reline (>= 0.4.2)
    jbuilder (2.11.5)
      actionview (>= 5.0.0)
      activesupport (>= 5.0.0)
    loofah (2.22.0)
      crass (~> 1.0.2)
      nokogiri (>= 1.12.0)
    mail (2.8.1)
      mini_mime (>= 0.1.1)
      net-imap
      net-pop
      net-smtp
    marcel (1.0.2)
    matrix (0.4.2)
    mini_mime (1.1.5)
    minitest (5.22.2)
    msgpack (1.7.2)
    mutex_m (0.2.0)
    net-imap (0.4.10)
      date
      net-protocol
    net-pop (0.1.2)
      net-protocol
    net-protocol (0.2.2)
      timeout
    net-smtp (0.4.0.1)
      net-protocol
    nio4r (2.7.0)
    nokogiri (1.16.2-aarch64-linux)
      racc (~> 1.4)
    nokogiri (1.16.2-arm-linux)
      racc (~> 1.4)
    nokogiri (1.16.2-arm64-darwin)
      racc (~> 1.4)
    nokogiri (1.16.2-x86-linux)
      racc (~> 1.4)
    nokogiri (1.16.2-x86_64-darwin)
      racc (~> 1.4)
    nokogiri (1.16.2-x86_64-linux)
      racc (~> 1.4)
    psych (5.1.2)
      stringio
    public_suffix (5.0.4)
    puma (6.4.2)
      nio4r (~> 2.0)
    racc (1.7.3)
    rack (3.0.9.1)
    rack-session (2.0.0)
      rack (>= 3.0.0)
    rack-test (2.1.0)
      rack (>= 1.3)
    rackup (2.1.0)
      rack (>= 3)
      webrick (~> 1.8)
    rails (7.1.3.2)
      actioncable (= 7.1.3.2)
      actionmailbox (= 7.1.3.2)
      actionmailer (= 7.1.3.2)
      actionpack (= 7.1.3.2)
      actiontext (= 7.1.3.2)
      actionview (= 7.1.3.2)
      activejob (= 7.1.3.2)
      activemodel (= 7.1.3.2)
      activerecord (= 7.1.3.2)
      activestorage (= 7.1.3.2)
      activesupport (= 7.1.3.2)
      bundler (>= 1.15.0)
      railties (= 7.1.3.2)
    rails-dom-testing (2.2.0)
      activesupport (>= 5.0.0)
      minitest
      nokogiri (>= 1.6)
    rails-html-sanitizer (1.6.0)
      loofah (~> 2.21)
      nokogiri (~> 1.14)
    railties (7.1.3.2)
      actionpack (= 7.1.3.2)
      activesupport (= 7.1.3.2)
      irb
      rackup (>= 1.0.0)
      rake (>= 12.2)
      thor (~> 1.0, >= 1.2.2)
      zeitwerk (~> 2.6)
    rake (13.1.0)
    rdoc (6.6.2)
      psych (>= 4.0.0)
    redis (5.0.6)
      redis-client (>= 0.9.0)
    redis-client (0.17.1)
      connection_pool
    regexp_parser (2.9.0)
    reline (0.4.2)
      io-console (~> 0.5)
    rexml (3.2.6)
    ruby2_keywords (0.0.5)
    rubyzip (2.3.2)
    selenium-webdriver (4.18.1)
      base64 (~> 0.2)
      rexml (~> 3.2, >= 3.2.5)
      rubyzip (>= 1.2.2, < 3.0)
      websocket (~> 1.0)
    sprockets (4.2.1)
      concurrent-ruby (~> 1.0)
      rack (>= 2.2.4, < 4)
    sprockets-rails (3.4.2)
      actionpack (>= 5.2)
      activesupport (>= 5.2)
      sprockets (>= 3.0.0)
    sqlite3 (1.7.2-aarch64-linux)
    sqlite3 (1.7.2-arm-linux)
    sqlite3 (1.7.2-arm64-darwin)
    sqlite3 (1.7.2-x86-linux)
    sqlite3 (1.7.2-x86_64-darwin)
    sqlite3 (1.7.2-x86_64-linux)
    stimulus-rails (1.3.3)
      railties (>= 6.0.0)
    stringio (3.1.0)
    tailwindcss-rails (2.3.0)
      railties (>= 6.0.0)
    tailwindcss-rails (2.3.0-aarch64-linux)
      railties (>= 6.0.0)
    tailwindcss-rails (2.3.0-arm-linux)
      railties (>= 6.0.0)
    tailwindcss-rails (2.3.0-arm64-darwin)
      railties (>= 6.0.0)
    tailwindcss-rails (2.3.0-x86_64-darwin)
      railties (>= 6.0.0)
    tailwindcss-rails (2.3.0-x86_64-linux)
      railties (>= 6.0.0)
    thor (1.3.0)
    timeout (0.4.1)
    turbo-rails (2.0.4)
      actionpack (>= 6.0.0)
      activejob (>= 6.0.0)
      railties (>= 6.0.0)
    tzinfo (2.0.6)
      concurrent-ruby (~> 1.0)
    web-console (4.2.1)
      actionview (>= 6.0.0)
      activemodel (>= 6.0.0)
      bindex (>= 0.4.0)
      railties (>= 6.0.0)
    webrick (1.8.1)
    websocket (1.2.10)
    websocket-driver (0.7.6)
      websocket-extensions (>= 0.1.0)
    websocket-extensions (0.1.5)
    xpath (3.2.0)
      nokogiri (~> 1.8)
    zeitwerk (2.6.13)

PLATFORMS
  aarch64-linux
  arm-linux
  arm64-darwin
  x86-linux
  x86_64-darwin
  x86_64-linux

DEPENDENCIES
  bootsnap
  capybara
  debug
  importmap-rails
  jbuilder
  puma (>= 5.0)
  rails (~> 7.1.3, >= 7.1.3.2)
  redis (>= 4.0.1)
  selenium-webdriver
  sprockets-rails
  sqlite3 (~> 1.4)
  stimulus-rails
  tailwindcss-rails
  turbo-rails
  tzinfo-data
  web-console

RUBY VERSION
   ruby 3.3.0p0

BUNDLED WITH
   2.5.3
And here's the output from `bin/dev`
soho in tailwind_test_330 on  main [?] via � v3.3.0
$ bin/dev
Installing foreman...
Fetching foreman-0.87.2.gem
Successfully installed foreman-0.87.2
1 gem installed
13:47:59 web.1  | started with pid 37888
13:47:59 css.1  | started with pid 37889
13:48:01 web.1  | => Booting Puma
13:48:01 web.1  | => Rails 7.1.3.2 application starting in development
13:48:01 web.1  | => Run `bin/rails server --help` for more startup options
13:48:01 web.1  | Puma starting in single mode...
13:48:01 web.1  | * Puma version: 6.4.2 (ruby 3.3.0-p0) ("The Eagle of Durango")
13:48:01 web.1  | *  Min threads: 5
13:48:01 web.1  | *  Max threads: 5
13:48:01 web.1  | *  Environment: development
13:48:01 web.1  | *          PID: 37888
13:48:01 web.1  | * Listening on http://127.0.0.1:3000
13:48:01 web.1  | * Listening on http://[::1]:3000
13:48:01 web.1  | * Listening on http://127.0.0.42:3000
13:48:01 web.1  | * Listening on http://127.0.2.2:3000
13:48:01 web.1  | * Listening on http://127.0.2.3:3000
13:48:02 web.1  | Use Ctrl-C to stop
13:48:03 css.1  |
13:48:03 css.1  | Rebuilding...
13:48:03 css.1  |
13:48:03 css.1  | Done in 209ms.
^C13:48:04 system | SIGINT received, starting shutdown
13:48:04 css.1  | bin/rails aborted!
13:48:04 css.1  | Interrupt: Interrupt
13:48:04 css.1  |
13:48:04 web.1  | - Gracefully stopping, waiting for requests to finish
13:48:04 css.1  | Tasks: TOP => tailwindcss:watch
13:48:04 css.1  | (See full trace by running task with --trace)
13:48:04 web.1  | === puma shutdown: 2024-02-23 13:48:04 -0500 ===
13:48:04 web.1  | - Goodbye!
13:48:04 web.1  | Exiting
13:48:05 system | sending SIGTERM to all processes
13:48:05 css.1  | exited with code 1
13:48:05 web.1  | exited with code 0

Can you help me by describing what's different about your system/setup/versions/dependencies? If you can provide more information that would be incredibly helpful.

@davidcelis
Copy link
Contributor

Sure, here's the output of my `bundle env`

Environment

Bundler       2.5.3
  Platforms   ruby, arm64-darwin-23
Ruby          3.3.0p0 (2023-12-25 revision 5124f9ac7513eb590c37717337c430cb93caa151) [arm64-darwin-23]
  Full Path   /Users/davidcelis/.asdf/installs/ruby/3.3.0/bin/ruby
  Config Dir  /Users/davidcelis/.asdf/installs/ruby/3.3.0/etc
RubyGems      3.5.3
  Gem Home    /Users/davidcelis/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0
  Gem Path    /Users/davidcelis/.gem/ruby/3.3.0:/Users/davidcelis/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0
  User Home   /Users/davidcelis
  User Path   /Users/davidcelis/.gem/ruby/3.3.0
  Bin Dir     /Users/davidcelis/.asdf/installs/ruby/3.3.0/bin
Tools         
  Git         2.43.0
  RVM         not installed
  rbenv       not installed
  chruby      not installed

Bundler Build Metadata

Built At          2024-02-23
Git SHA           unknown
Released Version  false

Bundler settings

build.ffi
  Set for the current user (/Users/davidcelis/.bundle/config): "--enable-libffi-alloc"
gem.changelog
  Set for the current user (/Users/davidcelis/.bundle/config): false
gem.ci
  Set for the current user (/Users/davidcelis/.bundle/config): "github"
gem.coc
  Set for the current user (/Users/davidcelis/.bundle/config): true
gem.linter
  Set for the current user (/Users/davidcelis/.bundle/config): false
gem.mit
  Set for the current user (/Users/davidcelis/.bundle/config): true
gem.test
  Set for the current user (/Users/davidcelis/.bundle/config): "rspec"
gemfile
  Set via BUNDLE_GEMFILE: "/Users/davidcelis/Developer/tailwind_test/Gemfile"
ignore_messages
  Set for the current user (/Users/davidcelis/.bundle/config): true
jobs
  Set for the current user (/Users/davidcelis/.bundle/config): 8
path
  Set for the current user (/Users/davidcelis/.bundle/config): "vendor/bundle"
rubygems.pkg.github.com
  Set via BUNDLE_RUBYGEMS__PKG__GITHUB__COM: "x-access-token:[REDACTED]"

Gemfile

Gemfile

source "https://rubygems.org"

ruby "3.3.0"

# Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main"
gem "rails", "~> 7.1.3", ">= 7.1.3.2"

# The original asset pipeline for Rails [https://github.com/rails/sprockets-rails]
gem "sprockets-rails"

# Use sqlite3 as the database for Active Record
gem "sqlite3", "~> 1.4"

# Use the Puma web server [https://github.com/puma/puma]
gem "puma", ">= 5.0"

# Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails]
gem "importmap-rails"

# Hotwire's SPA-like page accelerator [https://turbo.hotwired.dev]
gem "turbo-rails"

# Hotwire's modest JavaScript framework [https://stimulus.hotwired.dev]
gem "stimulus-rails"

# Use Tailwind CSS [https://github.com/rails/tailwindcss-rails]
gem "tailwindcss-rails"

# Build JSON APIs with ease [https://github.com/rails/jbuilder]
gem "jbuilder"

# Use Redis adapter to run Action Cable in production
gem "redis", ">= 4.0.1"

# Use Kredis to get higher-level data types in Redis [https://github.com/rails/kredis]
# gem "kredis"

# Use Active Model has_secure_password [https://guides.rubyonrails.org/active_model_basics.html#securepassword]
# gem "bcrypt", "~> 3.1.7"

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem "tzinfo-data", platforms: %i[ windows jruby ]

# Reduces boot times through caching; required in config/boot.rb
gem "bootsnap", require: false

# Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images]
# gem "image_processing", "~> 1.2"

group :development, :test do
  # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem
  gem "debug", platforms: %i[ mri windows ]
end

group :development do
  # Use console on exceptions pages [https://github.com/rails/web-console]
  gem "web-console"

  # Add speed badges [https://github.com/MiniProfiler/rack-mini-profiler]
  # gem "rack-mini-profiler"

  # Speed up commands on slow machines / big apps [https://github.com/rails/spring]
  # gem "spring"
end

group :test do
  # Use system testing [https://guides.rubyonrails.org/testing.html#system-testing]
  gem "capybara"
  gem "selenium-webdriver"
end

Gemfile.lock

GEM
  remote: https://rubygems.org/
  specs:
    actioncable (7.1.3.2)
      actionpack (= 7.1.3.2)
      activesupport (= 7.1.3.2)
      nio4r (~> 2.0)
      websocket-driver (>= 0.6.1)
      zeitwerk (~> 2.6)
    actionmailbox (7.1.3.2)
      actionpack (= 7.1.3.2)
      activejob (= 7.1.3.2)
      activerecord (= 7.1.3.2)
      activestorage (= 7.1.3.2)
      activesupport (= 7.1.3.2)
      mail (>= 2.7.1)
      net-imap
      net-pop
      net-smtp
    actionmailer (7.1.3.2)
      actionpack (= 7.1.3.2)
      actionview (= 7.1.3.2)
      activejob (= 7.1.3.2)
      activesupport (= 7.1.3.2)
      mail (~> 2.5, >= 2.5.4)
      net-imap
      net-pop
      net-smtp
      rails-dom-testing (~> 2.2)
    actionpack (7.1.3.2)
      actionview (= 7.1.3.2)
      activesupport (= 7.1.3.2)
      nokogiri (>= 1.8.5)
      racc
      rack (>= 2.2.4)
      rack-session (>= 1.0.1)
      rack-test (>= 0.6.3)
      rails-dom-testing (~> 2.2)
      rails-html-sanitizer (~> 1.6)
    actiontext (7.1.3.2)
      actionpack (= 7.1.3.2)
      activerecord (= 7.1.3.2)
      activestorage (= 7.1.3.2)
      activesupport (= 7.1.3.2)
      globalid (>= 0.6.0)
      nokogiri (>= 1.8.5)
    actionview (7.1.3.2)
      activesupport (= 7.1.3.2)
      builder (~> 3.1)
      erubi (~> 1.11)
      rails-dom-testing (~> 2.2)
      rails-html-sanitizer (~> 1.6)
    activejob (7.1.3.2)
      activesupport (= 7.1.3.2)
      globalid (>= 0.3.6)
    activemodel (7.1.3.2)
      activesupport (= 7.1.3.2)
    activerecord (7.1.3.2)
      activemodel (= 7.1.3.2)
      activesupport (= 7.1.3.2)
      timeout (>= 0.4.0)
    activestorage (7.1.3.2)
      actionpack (= 7.1.3.2)
      activejob (= 7.1.3.2)
      activerecord (= 7.1.3.2)
      activesupport (= 7.1.3.2)
      marcel (~> 1.0)
    activesupport (7.1.3.2)
      base64
      bigdecimal
      concurrent-ruby (~> 1.0, >= 1.0.2)
      connection_pool (>= 2.2.5)
      drb
      i18n (>= 1.6, < 2)
      minitest (>= 5.1)
      mutex_m
      tzinfo (~> 2.0)
    addressable (2.8.6)
      public_suffix (>= 2.0.2, < 6.0)
    base64 (0.2.0)
    bigdecimal (3.1.6)
    bindex (0.8.1)
    bootsnap (1.18.3)
      msgpack (~> 1.2)
    builder (3.2.4)
    capybara (3.40.0)
      addressable
      matrix
      mini_mime (>= 0.1.3)
      nokogiri (~> 1.11)
      rack (>= 1.6.0)
      rack-test (>= 0.6.3)
      regexp_parser (>= 1.5, < 3.0)
      xpath (~> 3.2)
    concurrent-ruby (1.2.3)
    connection_pool (2.4.1)
    crass (1.0.6)
    date (3.3.4)
    debug (1.9.1)
      irb (~> 1.10)
      reline (>= 0.3.8)
    drb (2.2.0)
      ruby2_keywords
    erubi (1.12.0)
    globalid (1.2.1)
      activesupport (>= 6.1)
    i18n (1.14.1)
      concurrent-ruby (~> 1.0)
    importmap-rails (2.0.1)
      actionpack (>= 6.0.0)
      activesupport (>= 6.0.0)
      railties (>= 6.0.0)
    io-console (0.7.2)
    irb (1.11.2)
      rdoc
      reline (>= 0.4.2)
    jbuilder (2.11.5)
      actionview (>= 5.0.0)
      activesupport (>= 5.0.0)
    loofah (2.22.0)
      crass (~> 1.0.2)
      nokogiri (>= 1.12.0)
    mail (2.8.1)
      mini_mime (>= 0.1.1)
      net-imap
      net-pop
      net-smtp
    marcel (1.0.2)
    matrix (0.4.2)
    mini_mime (1.1.5)
    minitest (5.22.2)
    msgpack (1.7.2)
    mutex_m (0.2.0)
    net-imap (0.4.10)
      date
      net-protocol
    net-pop (0.1.2)
      net-protocol
    net-protocol (0.2.2)
      timeout
    net-smtp (0.4.0.1)
      net-protocol
    nio4r (2.7.0)
    nokogiri (1.16.2-aarch64-linux)
      racc (~> 1.4)
    nokogiri (1.16.2-arm-linux)
      racc (~> 1.4)
    nokogiri (1.16.2-arm64-darwin)
      racc (~> 1.4)
    nokogiri (1.16.2-x86-linux)
      racc (~> 1.4)
    nokogiri (1.16.2-x86_64-darwin)
      racc (~> 1.4)
    nokogiri (1.16.2-x86_64-linux)
      racc (~> 1.4)
    psych (5.1.2)
      stringio
    public_suffix (5.0.4)
    puma (6.4.2)
      nio4r (~> 2.0)
    racc (1.7.3)
    rack (3.0.9.1)
    rack-session (2.0.0)
      rack (>= 3.0.0)
    rack-test (2.1.0)
      rack (>= 1.3)
    rackup (2.1.0)
      rack (>= 3)
      webrick (~> 1.8)
    rails (7.1.3.2)
      actioncable (= 7.1.3.2)
      actionmailbox (= 7.1.3.2)
      actionmailer (= 7.1.3.2)
      actionpack (= 7.1.3.2)
      actiontext (= 7.1.3.2)
      actionview (= 7.1.3.2)
      activejob (= 7.1.3.2)
      activemodel (= 7.1.3.2)
      activerecord (= 7.1.3.2)
      activestorage (= 7.1.3.2)
      activesupport (= 7.1.3.2)
      bundler (>= 1.15.0)
      railties (= 7.1.3.2)
    rails-dom-testing (2.2.0)
      activesupport (>= 5.0.0)
      minitest
      nokogiri (>= 1.6)
    rails-html-sanitizer (1.6.0)
      loofah (~> 2.21)
      nokogiri (~> 1.14)
    railties (7.1.3.2)
      actionpack (= 7.1.3.2)
      activesupport (= 7.1.3.2)
      irb
      rackup (>= 1.0.0)
      rake (>= 12.2)
      thor (~> 1.0, >= 1.2.2)
      zeitwerk (~> 2.6)
    rake (13.1.0)
    rdoc (6.6.2)
      psych (>= 4.0.0)
    redis (5.1.0)
      redis-client (>= 0.17.0)
    redis-client (0.20.0)
      connection_pool
    regexp_parser (2.9.0)
    reline (0.4.2)
      io-console (~> 0.5)
    rexml (3.2.6)
    ruby2_keywords (0.0.5)
    rubyzip (2.3.2)
    selenium-webdriver (4.18.1)
      base64 (~> 0.2)
      rexml (~> 3.2, >= 3.2.5)
      rubyzip (>= 1.2.2, < 3.0)
      websocket (~> 1.0)
    sprockets (4.2.1)
      concurrent-ruby (~> 1.0)
      rack (>= 2.2.4, < 4)
    sprockets-rails (3.4.2)
      actionpack (>= 5.2)
      activesupport (>= 5.2)
      sprockets (>= 3.0.0)
    sqlite3 (1.7.2-aarch64-linux)
    sqlite3 (1.7.2-arm-linux)
    sqlite3 (1.7.2-arm64-darwin)
    sqlite3 (1.7.2-x86-linux)
    sqlite3 (1.7.2-x86_64-darwin)
    sqlite3 (1.7.2-x86_64-linux)
    stimulus-rails (1.3.3)
      railties (>= 6.0.0)
    stringio (3.1.0)
    tailwindcss-rails (2.3.0)
      railties (>= 6.0.0)
    tailwindcss-rails (2.3.0-aarch64-linux)
      railties (>= 6.0.0)
    tailwindcss-rails (2.3.0-arm-linux)
      railties (>= 6.0.0)
    tailwindcss-rails (2.3.0-arm64-darwin)
      railties (>= 6.0.0)
    tailwindcss-rails (2.3.0-x86_64-darwin)
      railties (>= 6.0.0)
    tailwindcss-rails (2.3.0-x86_64-linux)
      railties (>= 6.0.0)
    thor (1.3.0)
    timeout (0.4.1)
    turbo-rails (2.0.4)
      actionpack (>= 6.0.0)
      activejob (>= 6.0.0)
      railties (>= 6.0.0)
    tzinfo (2.0.6)
      concurrent-ruby (~> 1.0)
    web-console (4.2.1)
      actionview (>= 6.0.0)
      activemodel (>= 6.0.0)
      bindex (>= 0.4.0)
      railties (>= 6.0.0)
    webrick (1.8.1)
    websocket (1.2.10)
    websocket-driver (0.7.6)
      websocket-extensions (>= 0.1.0)
    websocket-extensions (0.1.5)
    xpath (3.2.0)
      nokogiri (~> 1.8)
    zeitwerk (2.6.13)

PLATFORMS
  aarch64-linux
  arm-linux
  arm64-darwin
  x86-linux
  x86_64-darwin
  x86_64-linux

DEPENDENCIES
  bootsnap
  capybara
  debug
  importmap-rails
  jbuilder
  puma (>= 5.0)
  rails (~> 7.1.3, >= 7.1.3.2)
  redis (>= 4.0.1)
  selenium-webdriver
  sprockets-rails
  sqlite3 (~> 1.4)
  stimulus-rails
  tailwindcss-rails
  turbo-rails
  tzinfo-data
  web-console

RUBY VERSION
   ruby 3.3.0p0

BUNDLED WITH
   2.5.3

In your bin/dev output, though, I do see an Interrupt: Interrupt exception right there after you ^C to kill the server. Is it possible that you have some kind of configuration that's hiding the backtrace itself?

davidcelis added a commit to davidcelis/tailwindcss-rails that referenced this issue Feb 23, 2024
When sending a SIGINT to end the `rake tailwindcss:watch` (or, for modern Procfile-based Rails applications, `bin/dev`) task, Ruby processes this via an `Interrupt` exception that can be rescued to handle gracefully tearing the process down. The `tailwindcss:watch` task, however, does not handle this exception, so when the task (or Rails' server via `bin/dev`) is terminated via the standard practice of using `^C`, that exception propagates and can result in a large backtrace; this can erroneously lead developers to think something is wrong.

This patch fixes rails#318 by rescuing `Interrupt` exceptions, which I've verified in my own applications that use this gem. It didn't seem like there's any necessary teardown that needs to happen upon quitting the process, so I left the `rescue` clause blank except for a log line when in verbose mode. I'm happy to make any necessary changes there, however! Additionally, if that `rescue` should occur elsewhere, like directly in `exe/tailwindcss`, I'm happy to do so there as well. I wasn't sure if that's where it belonged, however, as the other commands aren't meant to run indefinitely until killed.
@flavorjones
Copy link
Member

Is it possible that you have some kind of configuration that's hiding the backtrace itself?

Not that I am aware of.

@flavorjones
Copy link
Member

#336 has been merged! Will be in the next release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs-more-info Further information is needed to unblock
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants