Connection refused error after updating to 1.6.X in a Rails project running inside docker
還沒有人認領這個 Issue。
評估
研究方向
Reproduce the failure with the Ruby 3.1.2-slim Docker image and the listed rdbg command, then inspect debug-1.6.0/lib/debug/client.rb at connect_unix and compare its socket naming with debug 1.5.0. Done means rdbg -A attaches to the running Rails/Puma process after updating to a 1.6 release.
由索引模型根據 Issue 內容生成。
描述
Your environment
ruby -v:ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [aarch64-linux]rdbg -v: working:rdbg 1.5.0, non-workingrdbg 1.6.X
Describe the bug
I'm using the official Ruby 3.1.2-slim docker image. After updating the debug gem from 1.5.0 to 1.6.X, I cannot attach to the running process any more.
I'm running a Rails project with the latest Rails version (7.0.4) and the Puma web server. This is the command I'm running:
rdbg --open --nonstop -c -- rails s -b '0.0.0.0'
Using debug 1.5.0, all is well:
❯ dc exec web rdbg -A
# No sourcefile available for /usr/local/bundle/gems/puma-5.6.5/lib/puma/single.rb
=>#0 [C] Thread#join at /usr/local/bundle/gems/puma-5.6.5/lib/puma/single.rb:61
#1 Puma::Single#run at /usr/local/bundle/gems/puma-5.6.5/lib/puma/single.rb:61
# and 15 frames (use `bt' command for all frames)
Stop by SIGURG
(rdbg:remote) c # continue command
Socket name (automatically chosen by the debug gem): /tmp/ruby-debug-sock-0/ruby-debug-ruby-debug-1
Using debug 1.6.X, the connection does not work any more:
/usr/local/lib/ruby/3.1.0/socket.rb:64:in `connect': Connection refused - connect(2) for /tmp/ruby-debug-sock-0/ruby-debug-UnknownUser-1 (Errno::ECONNREFUSED)
from /usr/local/lib/ruby/3.1.0/socket.rb:64:in `connect_internal'
from /usr/local/lib/ruby/3.1.0/socket.rb:137:in `connect'
from /usr/local/lib/ruby/3.1.0/socket.rb:1078:in `unix'
from /usr/local/bundle/gems/debug-1.6.0/lib/debug/client.rb:158:in `connect_unix'
from /usr/local/bundle/gems/debug-1.6.0/lib/debug/client.rb:108:in `initialize'
from /usr/local/bundle/gems/debug-1.6.0/exe/rdbg:31:in `new'
from /usr/local/bundle/gems/debug-1.6.0/exe/rdbg:31:in `<top (required)>'
from /app/bin/rdbg:29:in `load'
from /app/bin/rdbg:29:in `<main>'
Socket name (automatically chosen by the debug gem): /tmp/ruby-debug-sock-0/ruby-debug-UnknownUser-1
Notice the change in the socket name, maybe this has something to do with this issue? The socket does exist, though, and permissions seem correct.
To Reproduce
Update debug to 1.6.X. I've tried all released 1.6 versions, none of them is working. Going back to 1.5 resolves the issue for me.
Expected behavior
rdbg -A connects to the running process.
- 主要語言
- Ruby
- 星號
- 1.3k
- 分支
- 146
- PR 合併指標
- 30 天內沒有已合併 PR
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
ruby/debug 的其他 Issue
-
難度 3/5 1-2 天 新手友好度 68/100
-
Support exceptionOptions in setExceptionBreakpoints to catch arbitrary exception classes via DAP 未關閉
難度 4/5 3-5 天 新手友好度 55/100
-
難度 3/5 1-2 天 新手友好度 45/100
-
難度 4/5 3-5 天 新手友好度 52/100
-
難度 4/5 3-5 天 新手友好度 35/100
相似的 Issue
-
難度 2/5 1-3 小時 新手友好度 70/100
-
bug
難度 1/5 1 小時以內 新手友好度 90/100
riscv/riscv-unified-db#2626 ·
-
Component: GLib
難度 2/5 1-3 小時 新手友好度 70/100
-
ds-drift
難度 2/5 1-3 小時 新手友好度 70/100
we-promise/sure#3693 ·
-
難度 2/5 1-3 小時 新手友好度 75/100
simp/pupmod-simp-simp#395 ·