nvim-dap-ruby
nvim-dap-ruby copied to clipboard
Backtrace when trying to run spec for the current line
Disclaimer: I'm not ruby expert 🙈
My nvim-dap-ruby
setup generally works - verified using some very dummy project. However, with a larger code base (GitLab rails in this case), which takes several seconds to spawn the rspec the following happens:
Ruby REPL: You can run any Ruby expression here.
Note that output to the STDOUT/ERR printed on the TERMINAL.
[experimental]
`,COMMAND` runs `COMMAND` debug command (ex: `,info`).
`,help` to list all debug commands.
Run options: include {:focus=>true, :locations=>{"./ee/spec/services/clusters/agent_tokens/create_service_audit_log_spec.rb"=>[27]}}
[["/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:215:in `write'""/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:215:in `write'",,
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:215:in `send'","/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:215:in `send'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:239:in `send_event'","/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:239:in `send_event'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:463:in `ensure in process'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:463:in `process'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:73:in `block (3 levels) in activate'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:271:in `setup_interrupt'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:463:in `process'""/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:71:in `block (2 levels) in activate'",,
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:34:in `accept'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:421:in `accept'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:49:in `block in activate'""/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:73:in `block (3 levels) in activate'"],
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:271:in `setup_interrupt'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:71:in `block (2 levels) in activate'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:34:in `accept'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:421:in `accept'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:49:in `block in activate'"]
["/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:215:in `write'"[,"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:215:in `write'"
,"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:215:in `send'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:215:in `send'"
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:239:in `send_event'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:463:in `process'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:73:in `block (3 levels) in activate'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:271:in `setup_interrupt'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:71:in `block (2 levels) in activate'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:34:in `accept'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:421:in `accept'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:49:in `block in activate'"]
["/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:215:in `write'"
,
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:215:in `send'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:239:in `send_event'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:463:in `process'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:73:in `block (3 levels) in activate'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:271:in `setup_interrupt'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:71:in `block (2 levels) in activate'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:34:in `accept'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:421:in `accept'",
"/Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server.rb:49:in `block in activate'"]
An error occurred in a `before(:suite)` hook.
Failure/Error: sock.write "Content-Length: #{str.bytesize}\r\n\r\n#{str}"
IOError:
closed stream
# /Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:215:in `write'
# /Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:215:in `send'
# /Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:241:in `send_event'
# /Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/server_dap.rb:487:in `event'
# /Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/session.rb:1725:in `on_load'
# /Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/session.rb:270:in `process_event'
# /Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/session.rb:235:in `session_server_main'
# /Users/timo/.asdf/installs/ruby/3.0.5/lib/ruby/gems/3.0.0/gems/debug-1.7.1/lib/debug/session.rb:197:in `block in activate'
#
# Showing full backtrace because every line was filtered out.
# See docs for RSpec::Configuration#backtrace_exclusion_patterns and
# RSpec::Configuration#backtrace_inclusion_patterns for more information.
Finished in 1.83 seconds (files took 18.84 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples
What's going wrong here and how can I fix it?
Is this because of this waiting
configuration:
https://github.com/suketa/nvim-dap-ruby/blob/0a18182c6e5ee62b690b0c6ace155e4bbc4cd37f/lua/dap-ruby.lua#L168
... which would interrupt the session after a second?
I'm not sure, but...
nvim-dap-ruby invokes rdbg process which run your spec and try to connect to rdbg process after waiting
milliseconds.
But, nvim-dap-ruby might fail to connect the rdbg process because the larger code base takes more time to finish starting process.
It might work if waiting
is larger.
I don't know smarter way to wait rdbg process started.
It might work if waiting is larger.
What do you think about making that waiting
value configurable on a per workspace basis?