random failures in GitHub Actions CI's macos

Open
#561 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
30/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
github-actions, macos, ruby

Research direction

Start with the failing GitHub Actions run and gems/src/debug/test/debug/debug_statement_test.rb, especially test_breakpoint_fires_correctly and the support helpers named in the trace. Reproduce the bundled-gems test on macOS and determine why the expected Foo#bar output is intermittent; done means the test passes reliably in the macOS CI job.

Written by the indexing model from the issue text.

Description

debug gem sometimes failed on test-bundled-gems.

recent failures:
https://github.com/ruby/actions/runs/5515459899?check_suite_focus=true#step:16:2055

Testing the debug gem
  creating Makefile
  compiling /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/ext/debug/debug.c
  compiling /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/ext/debug/iseq_collector.c
  linking shared-object debug/debug.bundle
  /Users/runner/work/actions/actions/snapshot-master/exe/ruby -C /Users/runner/work/actions/actions/snapshot-master/gems/src/debug -Ilib /Users/runner/work/actions/actions/snapshot-master/.bundle/bin/rake test
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/lib/debug/client.rb:178: warning: assigned but unused variable - e
  Tests on local and remote. You can disable remote tests with RUBY_DEBUG_TEST_NO_REMOTE=1.
  Loaded suite /Users/runner/work/actions/actions/snapshot-master/.bundle/gems/rake-13.0.6/lib/rake/rake_test_loader
  Started
  ....................................P
  ===============================================================================
  Pending: test_boot_configuration_works_correctly(DEBUGGER__::BootConfigTest1638611290): Tests for DAP were skipped. You can enable them with RUBY_DEBUG_DAP_TEST=1.
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/support/dap_utils.rb:168:in `run_dap_scenario'
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/dap/boot_config_test.rb:21:in `test_boot_configuration_works_correctly'
       18:     RUBY
       19:     
       20:     def test_boot_configuration_works_correctly
    => 21:       run_dap_scenario PROGRAM do
       22:         [
       23:           *INITIALIZE_MSG,
       24:           {
  ===============================================================================
  ..............................P
  ===============================================================================
  Pending: test_break_works_correctly(DEBUGGER__::BreakTest1638674577): Tests for DAP were skipped. You can enable them with RUBY_DEBUG_DAP_TEST=1.
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/support/dap_utils.rb:168:in `run_dap_scenario'
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/dap/break_test.rb:21:in `test_break_works_correctly'
       18:     RUBY
       19:     
       20:     def test_break_works_correctly
    => 21:       run_dap_scenario PROGRAM do
       22:         [
       23:           *INITIALIZE_MSG,
       24:           {
  ===============================================================================
  ..............................F
  ===============================================================================
  Failure: test_breakpoint_fires_correctly(DEBUGGER__::BasicTest):
    #<Test::Unit::AssertionFailedError: 
    --------------------
    | Debugger Session |
    --------------------
    
    > 
    > Stop by SIGURG
    > continue
    > [?2004h(rdbg:remote) continue
    > [?2004l
  [1, 7] in /var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/debug-20220311-84898-50pfy5.rb
    > =>   1| class Foo
    >      2|   def bar
    >      3|     binding.break
    >      4|   end
    >      5| end
    >      6| 
    >      7| Foo.new.bar
    > =>#0	<main> at /var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/debug-20220311-84898-50pfy5.rb:1
    
    
    --------------------
    | Debuggee Session |
    --------------------
    
    > EBUGGER: Debugger can attach via UNIX domain socket (/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/ruby-debug-sock-501/ruby-debug-runner-84898-86)
    > DEBUGGER: Connected.
    
    
    -------------------
    | Failure Message |
    -------------------
    
    Expected to include `"Foo\\#bar"` in
    (
    [?2004h(rdbg:remote) continue
    [?2004l
  [1, 7] in /var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/debug-20220311-84898-50pfy5.rb
    =>   1| class Foo
         2|   def bar
         3|     binding.break
         4|   end
         5| end
         6| 
         7| Foo.new.bar
    =>#0	<main> at /var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/debug-20220311-84898-50pfy5.rb:1
    )
     on UNIX Domain Socket mode.>.
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/support/assertions.rb:79:in `assert_block'
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/support/utils.rb:78:in `rescue in block in debug_code'
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/support/utils.rb:63:in `block in debug_code'
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/support/utils.rb:171:in `prepare_test_environment'
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/support/utils.rb:61:in `debug_code'
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/debug/debug_statement_test.rb:12:in `block in debug_code'
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/debug/debug_statement_test.rb:11:in `each'
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/debug/debug_statement_test.rb:11:in `debug_code'
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/debug/debug_statement_test.rb:31:in `test_breakpoint_fires_correctly'
       28:     end
       29: 
       30:     def test_breakpoint_fires_correctly
    => 31:       debug_code(program) do
       32:         type 'continue'
       33:         assert_line_text('Foo#bar')
       34:         type 'q!'
  ===============================================================================
  .................P
  ===============================================================================
  Pending: test_1639[2181](https://github.com/ruby/actions/runs/5515459899?check_suite_focus=true#step:16:2181)22(DEBUGGER__::DetachTest1639218122): Tests for DAP were skipped. You can enable them with RUBY_DEBUG_DAP_TEST=1.
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/support/dap_utils.rb:168:in `run_dap_scenario'
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/dap/detach_test.rb:24:in `test_1639218122'
       21:     RUBY
       22:     
       23:     def test_1639218122
    => 24:       run_dap_scenario PROGRAM do
       25:         [
       26:           *INITIALIZE_MSG,
       27:           {
  ===============================================================================
  .................P
  ===============================================================================
  Pending: test_finish_works_correctly(DEBUGGER__::FinishTest1638674323): Tests for DAP were skipped. You can enable them with RUBY_DEBUG_DAP_TEST=1.
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/support/dap_utils.rb:168:in `run_dap_scenario'
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/dap/finish_test.rb:21:in `test_finish_works_correctly'
       18:     RUBY
       19:     
       20:     def test_finish_works_correctly
    => 21:       run_dap_scenario PROGRAM do
       22:         [
       23:           *INITIALIZE_MSG,
       24:           {
  ===============================================================================
  .......P
  ===============================================================================
  Pending: test_hover_works_correctly(DEBUGGER__::HoverTest1638791703): Tests for DAP were skipped. You can enable them with RUBY_DEBUG_DAP_TEST=1.
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/support/dap_utils.rb:168:in `run_dap_scenario'
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/dap/hover_test.rb:17:in `test_hover_works_correctly'
       14:     RUBY
       15:     
       16:     def test_hover_works_correctly
    => 17:       run_dap_scenario PROGRAM do
       18:         [
       19:           *INITIALIZE_MSG,
       20:           {
  ===============================================================================
  ....................P
  ===============================================================================
  Pending: test_next_works_correctly(DEBUGGER__::NextTest1638676688): Tests for DAP were skipped. You can enable them with RUBY_DEBUG_DAP_TEST=1.
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/support/dap_utils.rb:168:in `run_dap_scenario'
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/dap/next_test.rb:21:in `test_next_works_correctly'
       18:     RUBY
       19:     
       20:     def test_next_works_correctly
    => 21:       run_dap_scenario PROGRAM do
       22:         [
       23:           *INITIALIZE_MSG,
       24:           {
  ===============================================================================
  ........................................P
  ===============================================================================
  Pending: test_step_back_works_correctly(DEBUGGER__::StepBackTest1638698086): Tests for DAP were skipped. You can enable them with RUBY_DEBUG_DAP_TEST=1.
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/support/dap_utils.rb:168:in `run_dap_scenario'
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/dap/step_back_test.rb:23:in `test_step_back_works_correctly'
       20:     RUBY
       21:     
       22:     def test_step_back_works_correctly
    => 23:       run_dap_scenario PROGRAM do
       24:         [
       25:           *INITIALIZE_MSG,
       26:           {
  ===============================================================================
  P
  ===============================================================================
  Pending: test_step_works_correctly(DEBUGGER__::StepTest1638676609): Tests for DAP were skipped. You can enable them with RUBY_DEBUG_DAP_TEST=1.
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/support/dap_utils.rb:168:in `run_dap_scenario'
  /Users/runner/work/actions/actions/snapshot-master/gems/src/debug/test/dap/step_test.rb:21:in `test_step_works_correctly'
       18:     RUBY
       19:     
       20:     def test_step_works_correctly
    => 21:       run_dap_scenario PROGRAM do
       22:         [
       23:           *INITIALIZE_MSG,
       24:           {
  ===============================================================================
  ........................
  Finished in 138.555133 seconds.
  -------------------------------------------------------------------------------
  230 tests, 351 assertions, 1 failures, 0 errors, 8 pendings, 0 omissions, 0 notifications
  96.087% passed
  -------------------------------------------------------------------------------
  1.66 tests/s, 2.53 assertions/s
  rake aborted!
  Command failed with status (1)
  /Users/runner/work/actions/actions/snapshot-master/.bundle/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
  Tasks: TOP => test
  (See full trace by running task with --trace)
  Tests failed with exit code 1
Failed gems: debug
make: *** [test-bundled-gems-run] Error 1
Error: Process completed with exit code 2.
Dominant language
Ruby
Stars
1.3k
Forks
146
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ruby/debug

All issues in ruby/debug

Similar issues

More Ruby issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.