If rspec hangs with no output and you dont get a backtrace neither with --backtrace
nor by just killing it with crtl-c,
you can put the following in your spec/spec_helper.rb
:
puts "rspec pid: #{Process.pid}"
trap 'USR1' do
threads = Thread.list
puts
puts "=" * 80
puts "Received USR1 signal; printing all #{threads.count} thread backtraces."
threads.each do |thr|
description = thr == Thread.main ? "Main thread" : thr.inspect
puts
puts "#{description} backtrace: "
puts thr.backtrace.join("\n")
end
puts "=" * 80
end
then kill the process with kill -USR1 <the pid>
and you get the backtrace.
(source: https://github.com/rspec/rspec-rails/issues/1353#issuecomment-93173691 Show archive.org snapshot )
Posted by Martin Schaflitzl to makandra dev (2019-06-27 09:29)