Line breakpoints aren't shared between processes
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
Direzione di ricerca
Reproduce the behavior with the Rails/Puma multi-process setup described in the issue, using five workers and line breakpoints. Then inspect the debugger's process handling mechanism; done means a line breakpoint added to one process stops requests handled by every process, with behavior checked in VSCode attach mode.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Your environment
ruby -v:3.1.0rdbg -v:1.6.0
Describe the bug
When the debuggee application has multiple processes, line breakpoints added to 1 of them won't be shared to other processes.
This will cause inconsistent breakpoint stop because only that process will stop and others won't.
To Reproduce
This issue should happen to any application that:
- Has multiple processes
- Uses line breakpoints
But reproducing it with VSCode is easier:
-
Create a new rails application
-
In
config/puma.rb, setthreads 1, 1 # limit the threads number to 1 will increase the reproduction chance # other configs workers 5 # increase this number will also help reproduction -
Start the server with
bundle exec rdbg -c -- bundle exec rails s -
Set a breakpoint
-
Attach the debugger
-
Sending requests to the Rails app
-
The breakpoint should stop at some requests but not all of them
Expected behavior
The breakpoints should stop at every request
Additional context
@ko1 mentioned that:
- Resolving this will require rewriting a big part of the process handling mechanism
- Possible workarounds: 1) Use only 1 process or 2) For VSCode users, use launch mode instead
- There are no timeline for this issue yet (probably not before Ruby 3.2 is out)
- Lingua principale
- Ruby
- Stelle
- 1.3k
- Fork
- 146
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ruby/debug
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
-
Support exceptionOptions in setExceptionBreakpoints to catch arbitrary exception classes via DAP Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
palladius/rails8-app-on-gcp#145 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
rubocop/rubocop-rspec#2236 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
riscv/riscv-unified-db#2624 · 1 reazione ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100