Skip to content
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

Spring 4.2.0 crashing when running rake #716

Open
fschwahn opened this issue Apr 26, 2024 · 1 comment
Open

Spring 4.2.0 crashing when running rake #716

fschwahn opened this issue Apr 26, 2024 · 1 comment

Comments

@fschwahn
Copy link

This happened to me when running rails db:migrate.

I have never seen this before, and I have been using spring daily for years. Maybe it is connected to the changes in 4.2.0 (namely #708).

I'm running spring server as a separate process, so I have logs / stacktrace to share:

15:50:59 spring.1 | [2024-04-26 15:50:59 +0200] [4120] [server] accepted client
15:50:59 spring.1 | [2024-04-26 15:50:59 +0200] [4120] [server] running command rake
15:50:59 spring.1 | [2024-04-26 15:50:59 +0200] [4120] [server] shutting down
15:50:59 spring.1 | [2024-04-26 15:50:59 +0200] [4120] [application_manager:development] stopping
15:50:59 spring.1 | [2024-04-26 15:50:59 +0200] [4120] [application_manager:test] stopping
15:50:59 spring.1 | [2024-04-26 15:50:59 +0200] [12426] [application:development] forced exit
15:50:59 spring.1 | /Users/fabian/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/spring-4.2.0/lib/spring/application_manager.rb:63:in `send_io': Invalid argument - sendmsg(2) (Errno::EINVAL)
15:50:59 spring.1 | 	from /Users/fabian/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/spring-4.2.0/lib/spring/application_manager.rb:63:in `block in run'
15:50:59 spring.1 | 	from /Users/fabian/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/spring-4.2.0/lib/spring/application_manager.rb:44:in `block in with_child'
15:50:59 spring.1 | 	from /Users/fabian/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/spring-4.2.0/lib/spring/application_manager.rb:22:in `synchronize'
15:50:59 spring.1 | 	from /Users/fabian/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/spring-4.2.0/lib/spring/application_manager.rb:41:in `with_child'
15:50:59 spring.1 | 	from /Users/fabian/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/spring-4.2.0/lib/spring/application_manager.rb:62:in `run'
15:50:59 spring.1 | 	from /Users/fabian/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/spring-4.2.0/lib/spring/server.rb:70:in `serve'
15:50:59 spring.1 | 	from /Users/fabian/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/spring-4.2.0/lib/spring/server.rb:51:in `block in start_server'
15:50:59 spring.1 | 	from <internal:kernel>:187:in `loop'
15:50:59 spring.1 | 	from /Users/fabian/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/spring-4.2.0/lib/spring/server.rb:51:in `start_server'
15:50:59 spring.1 | 	from /Users/fabian/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/spring-4.2.0/lib/spring/server.rb:45:in `boot'
15:50:59 spring.1 | 	from /Users/fabian/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/spring-4.2.0/lib/spring/server.rb:14:in `boot'
15:50:59 spring.1 | 	from /Users/fabian/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/spring-4.2.0/lib/spring/client/server.rb:10:in `call'
15:50:59 spring.1 | 	from /Users/fabian/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/spring-4.2.0/lib/spring/client/command.rb:7:in `call'
15:50:59 spring.1 | 	from /Users/fabian/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/spring-4.2.0/lib/spring/client.rb:30:in `run'
15:50:59 spring.1 | 	from /Users/fabian/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/spring-4.2.0/bin/spring:49:in `<top (required)>'
15:50:59 spring.1 | 	from /Users/fabian/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/spring-4.2.0/lib/spring/binstub.rb:5:in `load'
15:50:59 spring.1 | 	from /Users/fabian/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/spring-4.2.0/lib/spring/binstub.rb:5:in `<top (required)>'
15:50:59 spring.1 | 	from <internal:/Users/fabian/.rbenv/versions/3.3.1/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
15:50:59 spring.1 | 	from <internal:/Users/fabian/.rbenv/versions/3.3.1/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
15:50:59 spring.1 | 	from bin/spring:12:in `block in <main>'
15:50:59 spring.1 | 	from <internal:kernel>:90:in `tap'
15:50:59 spring.1 | 	from bin/spring:9:in `<main>'
@fmichaut-diff
Copy link

fmichaut-diff commented Jul 11, 2024

Also running into this issue on MacOS.

This happens to me when the spring server is running, but a change gets detected by the watchers (eg: changing a config/ file).

The next client to connect to the server will trigger that error, killing the server process and any live pre-existing client and will make the new client hang indefinitely on preload_status = application.gets.

This is very frustrating when working on a git project, cause every change of branch is likely to trigger a watcher, which breaks the spring server and kills any open session (eg: a rails console being used, open a new terminal to run a rails db:migrate, rails g migration, or even another rails c will kill the running console, and the new process will hang indefinitely and won't even respond to CTRL-C)

I've been running into that issue for months now, it would be great if it could get fixed.

Relates to #396, #663, looks like this issue is very resilient

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants